6197987-PKCS12_HANG.patch [plain text]
diff -Nur openssl-0.9.8za/src/crypto/pkcs12/p12_crt.c ./crypto/pkcs12/p12_crt.c
--- openssl-0.9.8za/src/crypto/pkcs12/p12_crt.c 2014-06-05 01:09:08.000000000 -0700
+++ ./crypto/pkcs12/p12_crt.c 2014-07-09 17:55:16.000000000 -0700
@@ -91,6 +91,7 @@
int i;
unsigned char keyid[EVP_MAX_MD_SIZE];
unsigned int keyidlen = 0;
+ unsigned int namelen = name ? strlen(name) : -1;
/* Set defaults */
if (!nid_cert)
@@ -129,7 +130,7 @@
if (cert)
{
bag = PKCS12_add_cert(&bags, cert);
- if(name && !PKCS12_add_friendlyname(bag, name, -1))
+ if(name && !PKCS12_add_friendlyname(bag, name, namelen))
goto err;
if(keyidlen && !PKCS12_add_localkeyid(bag, keyid, keyidlen))
goto err;
@@ -160,7 +161,7 @@
if (!copy_bag_attr(bag, pkey, NID_LocalKeySet))
goto err;
- if(name && !PKCS12_add_friendlyname(bag, name, -1))
+ if(name && !PKCS12_add_friendlyname(bag, name, namelen))
goto err;
if(keyidlen && !PKCS12_add_localkeyid(bag, keyid, keyidlen))
goto err;