Fix a memory leak in RSA_padding_add_PKCS1_OAEP_mgf1
authorBernd Edlinger <bernd.edlinger@hotmail.de>
Fri, 23 Dec 2016 13:35:16 +0000 (14:35 +0100)
committerKurt Roeckx <kurt@roeckx.be>
Mon, 9 Jan 2017 21:33:47 +0000 (22:33 +0100)
Signed-off-by: Kurt Roeckx <kurt@roeckx.be>
Reviewed-by: Matt Caswell <matt@openssl.org>
GH: #2140
(cherry picked from commit c6d215e0d278fcd51ad474a3647b61e1b67290bb)

crypto/rsa/rsa_oaep.c

index c459b91ed233c611904bd7d9b5fe954984da5052..868104f1bfdcfd19f7513ed8d840e66149c957bd 100644 (file)
@@ -91,17 +91,21 @@ int RSA_padding_add_PKCS1_OAEP_mgf1(unsigned char *to, int tlen,
     }
 
     if (PKCS1_MGF1(dbmask, emlen - mdlen, seed, mdlen, mgf1md) < 0)
-        return 0;
+        goto err;
     for (i = 0; i < emlen - mdlen; i++)
         db[i] ^= dbmask[i];
 
     if (PKCS1_MGF1(seedmask, mdlen, db, emlen - mdlen, mgf1md) < 0)
-        return 0;
+        goto err;
     for (i = 0; i < mdlen; i++)
         seed[i] ^= seedmask[i];
 
     OPENSSL_free(dbmask);
     return 1;
+
+ err:
+    OPENSSL_free(dbmask);
+    return 0;
 }
 
 int RSA_padding_check_PKCS1_OAEP(unsigned char *to, int tlen,