From 7147313663c738c87ef98b8a9f965c7f6dc185a0 Mon Sep 17 00:00:00 2001 From: dimitri staessens Date: Wed, 24 Aug 2016 22:17:38 +0200 Subject: ipcpd, normal: Fix bad lock --- src/ipcpd/normal/main.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src/ipcpd') diff --git a/src/ipcpd/normal/main.c b/src/ipcpd/normal/main.c index 9479b806..a067fb83 100644 --- a/src/ipcpd/normal/main.c +++ b/src/ipcpd/normal/main.c @@ -136,14 +136,13 @@ static int normal_ipcp_enroll(char * dif_name) return -1; /* -ENOTINIT */ } + pthread_rwlock_unlock(&_ipcp->state_lock); + if (fmgr_mgmt_flow(dif_name)) { - pthread_rwlock_unlock(&_ipcp->state_lock); LOG_ERR("Failed to establish management flow."); return -1; } - pthread_rwlock_unlock(&_ipcp->state_lock); - if (ipcp_wait_state(_ipcp, IPCP_ENROLLED, &timeout) == -ETIMEDOUT) { LOG_ERR("Enrollment timed out."); return -1; @@ -156,6 +155,8 @@ static int normal_ipcp_enroll(char * dif_name) return -1; } + pthread_rwlock_unlock(&_ipcp->state_lock); + return 0; } -- cgit v1.2.3