summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormiod <>2014-09-26 19:30:38 +0000
committermiod <>2014-09-26 19:30:38 +0000
commit95519954bb32998ee415d159b5b8ca1be9e0d827 (patch)
tree7f7634f17db9c09df5a86cfa209ebe8982b6e8b7
parentd6d3c94e716944f599b1fba47074672a44305369 (diff)
downloadopenbsd-95519954bb32998ee415d159b5b8ca1be9e0d827.tar.gz
openbsd-95519954bb32998ee415d159b5b8ca1be9e0d827.tar.bz2
openbsd-95519954bb32998ee415d159b5b8ca1be9e0d827.zip
X509at_add1_attr(): do not free stuff we did not allocate in the error path.
ok tedu@
-rw-r--r--src/lib/libcrypto/x509/x509_att.c6
-rw-r--r--src/lib/libssl/src/crypto/x509/x509_att.c6
2 files changed, 6 insertions, 6 deletions
diff --git a/src/lib/libcrypto/x509/x509_att.c b/src/lib/libcrypto/x509/x509_att.c
index 4ae7504cae..e3acc18ed1 100644
--- a/src/lib/libcrypto/x509/x509_att.c
+++ b/src/lib/libcrypto/x509/x509_att.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: x509_att.c,v 1.11 2014/07/11 08:44:49 jsing Exp $ */ 1/* $OpenBSD: x509_att.c,v 1.12 2014/09/26 19:30:38 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 *
@@ -140,7 +140,7 @@ X509at_add1_attr(STACK_OF(X509_ATTRIBUTE) **x, X509_ATTRIBUTE *attr)
140 if ((sk = sk_X509_ATTRIBUTE_new_null()) == NULL) 140 if ((sk = sk_X509_ATTRIBUTE_new_null()) == NULL)
141 goto err; 141 goto err;
142 } else 142 } else
143 sk= *x; 143 sk = *x;
144 144
145 if ((new_attr = X509_ATTRIBUTE_dup(attr)) == NULL) 145 if ((new_attr = X509_ATTRIBUTE_dup(attr)) == NULL)
146 goto err2; 146 goto err2;
@@ -155,7 +155,7 @@ err:
155err2: 155err2:
156 if (new_attr != NULL) 156 if (new_attr != NULL)
157 X509_ATTRIBUTE_free(new_attr); 157 X509_ATTRIBUTE_free(new_attr);
158 if (sk != NULL) 158 if (sk != NULL && sk != *x)
159 sk_X509_ATTRIBUTE_free(sk); 159 sk_X509_ATTRIBUTE_free(sk);
160 return (NULL); 160 return (NULL);
161} 161}
diff --git a/src/lib/libssl/src/crypto/x509/x509_att.c b/src/lib/libssl/src/crypto/x509/x509_att.c
index 4ae7504cae..e3acc18ed1 100644
--- a/src/lib/libssl/src/crypto/x509/x509_att.c
+++ b/src/lib/libssl/src/crypto/x509/x509_att.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: x509_att.c,v 1.11 2014/07/11 08:44:49 jsing Exp $ */ 1/* $OpenBSD: x509_att.c,v 1.12 2014/09/26 19:30:38 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 *
@@ -140,7 +140,7 @@ X509at_add1_attr(STACK_OF(X509_ATTRIBUTE) **x, X509_ATTRIBUTE *attr)
140 if ((sk = sk_X509_ATTRIBUTE_new_null()) == NULL) 140 if ((sk = sk_X509_ATTRIBUTE_new_null()) == NULL)
141 goto err; 141 goto err;
142 } else 142 } else
143 sk= *x; 143 sk = *x;
144 144
145 if ((new_attr = X509_ATTRIBUTE_dup(attr)) == NULL) 145 if ((new_attr = X509_ATTRIBUTE_dup(attr)) == NULL)
146 goto err2; 146 goto err2;
@@ -155,7 +155,7 @@ err:
155err2: 155err2:
156 if (new_attr != NULL) 156 if (new_attr != NULL)
157 X509_ATTRIBUTE_free(new_attr); 157 X509_ATTRIBUTE_free(new_attr);
158 if (sk != NULL) 158 if (sk != NULL && sk != *x)
159 sk_X509_ATTRIBUTE_free(sk); 159 sk_X509_ATTRIBUTE_free(sk);
160 return (NULL); 160 return (NULL);
161} 161}