PR: 1785
authorDr. Stephen Henson <steve@openssl.org>
Mon, 13 Apr 2009 11:31:22 +0000 (11:31 +0000)
committerDr. Stephen Henson <steve@openssl.org>
Mon, 13 Apr 2009 11:31:22 +0000 (11:31 +0000)
Submitted by: Ger Hobbelt <ger@hobbelt.com>
Approved by: steve@openssl.org

Properly handle malloc failure.

crypto/dsa/dsa_asn1.c

index 084bd45..8277a74 100644 (file)
@@ -69,12 +69,15 @@ static int sig_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,
        if(operation == ASN1_OP_NEW_PRE) {
                DSA_SIG *sig;
                sig = OPENSSL_malloc(sizeof(DSA_SIG));
+               if (!sig)
+                       {
+                       DSAerr(DSA_F_SIG_CB, ERR_R_MALLOC_FAILURE);
+                       return 0;
+                       }
                sig->r = NULL;
                sig->s = NULL;
                *pval = (ASN1_VALUE *)sig;
-               if(sig) return 2;
-               DSAerr(DSA_F_SIG_CB, ERR_R_MALLOC_FAILURE);
-               return 0;
+               return 2;
        }
        return 1;
 }