> Hi All,
> 
> >From OpenSSL RT:
> http://rt.openssl.org/Ticket/Display.html?id=3278&user=guest&pass=guest
> 
> len can be 0 as well, and in which case, memory isn't freed. 

Correct. If successful, data is actually a malloc(len + 1), thus if
len == 0, we leak a \0 byte...

> Patch from Frantisek Boranek:
> 
> Index: lib/libssl/src/crypto/pkcs12/p12_kiss.c
> ===================================================================
> RCS file: /cvs/src/lib/libssl/src/crypto/pkcs12/p12_kiss.c,v
> retrieving revision 1.12
> diff -u -p -u -p -r1.12 p12_kiss.c
> --- lib/libssl/src/crypto/pkcs12/p12_kiss.c   17 Apr 2014 13:37:49 -0000      
> 1.12
> +++ lib/libssl/src/crypto/pkcs12/p12_kiss.c   4 Jun 2014 09:08:37 -0000
> @@ -269,7 +269,7 @@ static int parse_bag(PKCS12_SAFEBAG *bag
>                       int len, r;
>                       unsigned char *data;
>                       len = ASN1_STRING_to_UTF8(&data, fname);
> -                     if(len > 0) {
> +                     if(len >= 0) {
>                               r = X509_alias_set1(x509, data, len);
>                               free(data);
>                               if (!r)
> 

Reply via email to