summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormiod <>2016-11-13 08:47:54 +0000
committermiod <>2016-11-13 08:47:54 +0000
commitf2a500e5bfad3bd2e33845145abfb7a05542c3b2 (patch)
tree5c6baaa6dfddd6cb905fd8089da2b72f672b8d19
parent86c097bfe41072c2490c850b0bed68ed584c0ca0 (diff)
downloadopenbsd-f2a500e5bfad3bd2e33845145abfb7a05542c3b2.tar.gz
openbsd-f2a500e5bfad3bd2e33845145abfb7a05542c3b2.tar.bz2
openbsd-f2a500e5bfad3bd2e33845145abfb7a05542c3b2.zip
Fix previous change to X509_STORE_add_{cert,crl} to not free the input
object in the error path - we don't own it.
-rw-r--r--src/lib/libcrypto/x509/x509_lu.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/lib/libcrypto/x509/x509_lu.c b/src/lib/libcrypto/x509/x509_lu.c
index fc1256788e..d8d0bb4147 100644
--- a/src/lib/libcrypto/x509/x509_lu.c
+++ b/src/lib/libcrypto/x509/x509_lu.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: x509_lu.c,v 1.21 2016/11/08 21:22:55 miod Exp $ */ 1/* $OpenBSD: x509_lu.c,v 1.22 2016/11/13 08:47:54 miod Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -376,8 +376,10 @@ X509_STORE_add_cert(X509_STORE *ctx, X509 *x)
376 376
377 CRYPTO_w_unlock(CRYPTO_LOCK_X509_STORE); 377 CRYPTO_w_unlock(CRYPTO_LOCK_X509_STORE);
378 378
379 if (ret == 0) 379 if (ret == 0) {
380 obj->data.x509 = NULL; /* owned by the caller */
380 X509_OBJECT_free(obj); 381 X509_OBJECT_free(obj);
382 }
381 383
382 return ret; 384 return ret;
383} 385}
@@ -419,8 +421,10 @@ X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x)
419 421
420 CRYPTO_w_unlock(CRYPTO_LOCK_X509_STORE); 422 CRYPTO_w_unlock(CRYPTO_LOCK_X509_STORE);
421 423
422 if (ret == 0) 424 if (ret == 0) {
425 obj->data.crl = NULL; /* owned by the caller */
423 X509_OBJECT_free(obj); 426 X509_OBJECT_free(obj);
427 }
424 428
425 return ret; 429 return ret;
426} 430}