From 7147313663c738c87ef98b8a9f965c7f6dc185a0 Mon Sep 17 00:00:00 2001
From: dimitri staessens <dimitri.staessens@intec.ugent.be>
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(-)

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