]> git.ipfire.org Git - thirdparty/openvpn.git/commitdiff
Plug memory leak in mbedTLS backend
authorIvo Manca <pinkel@gmail.com>
Tue, 31 May 2016 11:42:00 +0000 (13:42 +0200)
committerDavid Sommerseth <dazo@privateinternetaccess.com>
Tue, 31 May 2016 15:24:30 +0000 (17:24 +0200)
Signed-off-by: Ivo Manca <pinkel@gmail.com>
Acked-by: Steffan Karger <steffan.karger@fox-it.com>
Acked-by: Arne Schwabe <arne@rfc2549.org>
Acked-by: Gert Doering <gert@greenie.muc.de>
Message-Id: <1464694920-3624-1-git-send-email-pinkel@gmail.com>
URL: http://article.gmane.org/gmane.network.openvpn.devel/11751
Signed-off-by: David Sommerseth <dazo@privateinternetaccess.com>
src/openvpn/ssl_verify_mbedtls.c

index 9c4b51a78716a20d9d7721eb793e77cd3b87582f..522ff68c4af9b252a119ccc8ebae349146755d97 100644 (file)
@@ -162,7 +162,7 @@ backend_x509_get_serial (mbedtls_x509_crt *cert, struct gc_arena *gc)
       cert->serial.len)))
     {
       msg(M_WARN, "Failed to retrieve serial from certificate.");
-      return NULL;
+      goto end;
     }
 
   /* Determine decimal representation length, allocate buffer */
@@ -173,9 +173,12 @@ backend_x509_get_serial (mbedtls_x509_crt *cert, struct gc_arena *gc)
   if (!mbed_ok(mbedtls_mpi_write_string(&serial_mpi, 10, buf, buflen, &buflen)))
     {
       msg(M_WARN, "Failed to write serial to string.");
-      return NULL;
+      buf = NULL;
+      goto end;
     }
 
+end:
+  mbedtls_mpi_free(&serial_mpi);
   return buf;
 }