diff options
Diffstat (limited to 'src/lib/libcrypto/pkcs12/p12_kiss.c')
-rw-r--r-- | src/lib/libcrypto/pkcs12/p12_kiss.c | 18 |
1 files changed, 3 insertions, 15 deletions
diff --git a/src/lib/libcrypto/pkcs12/p12_kiss.c b/src/lib/libcrypto/pkcs12/p12_kiss.c index 2b31999e11..885087ad00 100644 --- a/src/lib/libcrypto/pkcs12/p12_kiss.c +++ b/src/lib/libcrypto/pkcs12/p12_kiss.c | |||
@@ -249,26 +249,14 @@ static int parse_bag(PKCS12_SAFEBAG *bag, const char *pass, int passlen, | |||
249 | if (M_PKCS12_cert_bag_type(bag) != NID_x509Certificate ) | 249 | if (M_PKCS12_cert_bag_type(bag) != NID_x509Certificate ) |
250 | return 1; | 250 | return 1; |
251 | if (!(x509 = PKCS12_certbag2x509(bag))) return 0; | 251 | if (!(x509 = PKCS12_certbag2x509(bag))) return 0; |
252 | if(ckid) | 252 | if(ckid) X509_keyid_set1(x509, ckid->data, ckid->length); |
253 | { | ||
254 | if (!X509_keyid_set1(x509, ckid->data, ckid->length)) | ||
255 | { | ||
256 | X509_free(x509); | ||
257 | return 0; | ||
258 | } | ||
259 | } | ||
260 | if(fname) { | 253 | if(fname) { |
261 | int len, r; | 254 | int len; |
262 | unsigned char *data; | 255 | unsigned char *data; |
263 | len = ASN1_STRING_to_UTF8(&data, fname); | 256 | len = ASN1_STRING_to_UTF8(&data, fname); |
264 | if(len > 0) { | 257 | if(len > 0) { |
265 | r = X509_alias_set1(x509, data, len); | 258 | X509_alias_set1(x509, data, len); |
266 | OPENSSL_free(data); | 259 | OPENSSL_free(data); |
267 | if (!r) | ||
268 | { | ||
269 | X509_free(x509); | ||
270 | return 0; | ||
271 | } | ||
272 | } | 260 | } |
273 | } | 261 | } |
274 | 262 | ||