]> granicus.if.org Git - curl/commitdiff
polarssl: fix unaligned SSL session-id lock
authorDaniel Stenberg <daniel@haxx.se>
Tue, 18 Oct 2016 11:11:55 +0000 (13:11 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Tue, 18 Oct 2016 11:14:11 +0000 (13:14 +0200)
lib/vtls/polarssl.c

index 2ef19a7cad8c5df790cbbc4ef3d11ef604a63b8c..0be34971ef72f084d87239916a1fa568b82b34bc 100644 (file)
@@ -344,13 +344,14 @@ polarssl_connect_step1(struct connectdata *conn,
     Curl_ssl_sessionid_lock(conn);
     if(!Curl_ssl_getsessionid(conn, &old_session, NULL)) {
       ret = ssl_set_session(&connssl->ssl, old_session);
-      Curl_ssl_sessionid_unlock(conn);
       if(ret) {
+        Curl_ssl_sessionid_unlock(conn);
         failf(data, "ssl_set_session returned -0x%x", -ret);
         return CURLE_SSL_CONNECT_ERROR;
       }
       infof(data, "PolarSSL re-using session\n");
     }
+    Curl_ssl_sessionid_unlock(conn);
   }
 
   ssl_set_ca_chain(&connssl->ssl,