Bob Beck <[email protected]> writes: > I will be a minute reading this. The comment from the context at the > bottom of the diff has > me laughing and crying again...
Note that asn1_mac.h is installed... > On Tue, Apr 22, 2014 at 5:43 PM, Dirk Engling <[email protected]> wrote: >> remove M_ASN1_New_Malloc, M_ASN1_New, M_ASN1_New_Error marcos, they hide >> a malloc and are only used once >> >> >> Index: x_pkey.c >> =================================================================== >> RCS file: /cvs/src/lib/libssl/src/crypto/asn1/x_pkey.c,v >> retrieving revision 1.10 >> diff -u -r1.10 x_pkey.c >> --- x_pkey.c 18 Apr 2014 11:20:32 -0000 1.10 >> +++ x_pkey.c 22 Apr 2014 23:43:03 -0000 >> @@ -109,10 +109,18 @@ >> X509_PKEY *ret = NULL; >> ASN1_CTX c; >> >> - M_ASN1_New_Malloc(ret, X509_PKEY); >> + if ((ret = malloc(sizeof(X509_PKEY))) == NULL ) >> + ASN1_MAC_H_err(ASN1_F_X509_PKEY_NEW, ERR_R_MALLOC_FAILURE, >> + __LINE__ ); >> + return NULL; >> + } >> ret->version = 0; >> - M_ASN1_New(ret->enc_algor, X509_ALGOR_new); >> - M_ASN1_New(ret->enc_pkey, M_ASN1_OCTET_STRING_new); >> + ret->enc_algor = X509_ALGOR_new(); >> + if (ret->enc_algor == NULL) >> + return NULL; >> + ret->enc_pkey = M_ASN1_OCTET_STRING_new(); >> + if (ret->enc_pkey == NULL) >> + return NULL; >> ret->dec_pkey = NULL; >> ret->key_length = 0; >> ret->key_data = NULL; >> @@ -121,7 +129,6 @@ >> memset(ret->cipher.iv, 0, EVP_MAX_IV_LENGTH); >> ret->references = 1; >> return (ret); >> - M_ASN1_New_Error(ASN1_F_X509_PKEY_NEW); >> } >> >> void >> Index: asn1_mac.h >> =================================================================== >> RCS file: /cvs/src/lib/libssl/src/crypto/asn1/asn1_mac.h,v >> retrieving revision 1.10 >> diff -u -r1.10 asn1_mac.h >> --- asn1_mac.h 17 Apr 2014 13:37:48 -0000 1.10 >> +++ asn1_mac.h 22 Apr 2014 23:43:03 -0000 >> @@ -287,21 +287,6 @@ >> c.slen-=(c.p-c.q); \ >> } >> >> -/* New macros */ >> -#define M_ASN1_New_Malloc(ret,type) \ >> - if ((ret=(type *)malloc(sizeof(type))) == NULL) \ >> - { c.line=__LINE__; goto err2; } >> - >> -#define M_ASN1_New(arg,func) \ >> - if (((arg)=func()) == NULL) return(NULL) >> - >> -#define M_ASN1_New_Error(a) \ >> -/* err: ASN1_MAC_H_err((a),ERR_R_NESTED_ASN1_ERROR,c.line); \ >> - return(NULL);*/ \ >> - err2: ASN1_MAC_H_err((a),ERR_R_MALLOC_FAILURE,c.line); \ >> - return(NULL) >> - >> - >> /* BIG UGLY WARNING! This is so damn ugly I wanna puke. Unfortunately, >> some macros that use ASN1_const_CTX still insist on writing in the input >> stream. ARGH! ARGH! ARGH! Let's get rid of this macro package. >> > -- jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF DDCC 0DFA 74AE 1524 E7EE
