mem leak on error path and error propagation fix
authorYuchi <yt8mn@virginia.edu>
Mon, 6 Feb 2017 00:33:47 +0000 (19:33 -0500)
committerMatt Caswell <matt@openssl.org>
Tue, 14 Feb 2017 10:28:29 +0000 (10:28 +0000)
Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/2559)
(cherry picked from commit e0670973d5c0b837eb5a9f1670e47107f466fbc7)

crypto/ec/ec_ameth.c
ssl/ssl_ciph.c

index d089af7a28300b3de03523a2a606426cdbbeb827..2c41c6e7a9f181cba733ef46d9036b87717c4153 100644 (file)
@@ -342,8 +342,10 @@ static int eckey_priv_encode(PKCS8_PRIV_KEY_INFO *p8, const EVP_PKEY *pkey)
     }
 
     if (!PKCS8_pkey_set0(p8, OBJ_nid2obj(NID_X9_62_id_ecPublicKey), 0,
-                         ptype, pval, ep, eplen))
+                         ptype, pval, ep, eplen)) {
+        OPENSSL_free(ep);
         return 0;
+    }
 
     return 1;
 }
index 2ad8f4392236e6b70d49d568bf75b32d742c8808..92b022b7cb98f561d441f5271367bc2e6833523d 100644 (file)
@@ -2001,7 +2001,7 @@ int SSL_COMP_add_compression_method(int id, COMP_METHOD *cm)
     if (id < 193 || id > 255) {
         SSLerr(SSL_F_SSL_COMP_ADD_COMPRESSION_METHOD,
                SSL_R_COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE);
-        return 0;
+        return 1;
     }
 
     MemCheck_off();