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

Reply via email to