X-Git-Url: http://git.rot13.org/?p=bcm963xx.git;a=blobdiff_plain;f=userapps%2Fopensource%2Fopenssl%2Fcrypto%2Fpkcs12%2Fp12_kiss.c;h=2b31999e1124b28d9c06e45c584d20e1554d03f6;hp=885087ad00fdbc4c74d0ae95e00b1c0f874ae92d;hb=864458111a0e69d94bbae210d5b7349ca072a6b7;hpb=a69849c98808437716b821267cd97529c56f45b0 diff --git a/userapps/opensource/openssl/crypto/pkcs12/p12_kiss.c b/userapps/opensource/openssl/crypto/pkcs12/p12_kiss.c index 885087ad..2b31999e 100755 --- a/userapps/opensource/openssl/crypto/pkcs12/p12_kiss.c +++ b/userapps/opensource/openssl/crypto/pkcs12/p12_kiss.c @@ -249,14 +249,26 @@ static int parse_bag(PKCS12_SAFEBAG *bag, const char *pass, int passlen, if (M_PKCS12_cert_bag_type(bag) != NID_x509Certificate ) return 1; if (!(x509 = PKCS12_certbag2x509(bag))) return 0; - if(ckid) X509_keyid_set1(x509, ckid->data, ckid->length); + if(ckid) + { + if (!X509_keyid_set1(x509, ckid->data, ckid->length)) + { + X509_free(x509); + return 0; + } + } if(fname) { - int len; + int len, r; unsigned char *data; len = ASN1_STRING_to_UTF8(&data, fname); if(len > 0) { - X509_alias_set1(x509, data, len); + r = X509_alias_set1(x509, data, len); OPENSSL_free(data); + if (!r) + { + X509_free(x509); + return 0; + } } }