diff options
-rw-r--r-- | src/lib/libcrypto/asn1/a_object.c | 4 | ||||
-rw-r--r-- | src/lib/libcrypto/asn1/asn1_lib.c | 8 | ||||
-rw-r--r-- | src/lib/libssl/src/crypto/asn1/a_object.c | 4 | ||||
-rw-r--r-- | src/lib/libssl/src/crypto/asn1/asn1_lib.c | 8 |
4 files changed, 18 insertions, 6 deletions
diff --git a/src/lib/libcrypto/asn1/a_object.c b/src/lib/libcrypto/asn1/a_object.c index 7bcabec034..fcd6aa91fe 100644 --- a/src/lib/libcrypto/asn1/a_object.c +++ b/src/lib/libcrypto/asn1/a_object.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: a_object.c,v 1.24 2015/02/10 08:33:10 jsing Exp $ */ | 1 | /* $OpenBSD: a_object.c,v 1.25 2016/03/06 18:05:00 beck 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 | * |
@@ -380,6 +380,8 @@ ASN1_OBJECT_free(ASN1_OBJECT *a) | |||
380 | a->sn = a->ln = NULL; | 380 | a->sn = a->ln = NULL; |
381 | } | 381 | } |
382 | if (a->flags & ASN1_OBJECT_FLAG_DYNAMIC_DATA) { | 382 | if (a->flags & ASN1_OBJECT_FLAG_DYNAMIC_DATA) { |
383 | if (a->data != NULL) | ||
384 | explicit_bzero((void *)a->data, a->length); | ||
383 | free((void *)a->data); | 385 | free((void *)a->data); |
384 | a->data = NULL; | 386 | a->data = NULL; |
385 | a->length = 0; | 387 | a->length = 0; |
diff --git a/src/lib/libcrypto/asn1/asn1_lib.c b/src/lib/libcrypto/asn1/asn1_lib.c index 5d14a2780f..444a34c072 100644 --- a/src/lib/libcrypto/asn1/asn1_lib.c +++ b/src/lib/libcrypto/asn1/asn1_lib.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: asn1_lib.c,v 1.36 2015/07/29 14:53:20 jsing Exp $ */ | 1 | /* $OpenBSD: asn1_lib.c,v 1.37 2016/03/06 18:05:00 beck 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 | * |
@@ -401,6 +401,8 @@ ASN1_STRING_set(ASN1_STRING *str, const void *_data, int len) | |||
401 | void | 401 | void |
402 | ASN1_STRING_set0(ASN1_STRING *str, void *data, int len) | 402 | ASN1_STRING_set0(ASN1_STRING *str, void *data, int len) |
403 | { | 403 | { |
404 | if (str->data != NULL) | ||
405 | explicit_bzero(str->data, str->length); | ||
404 | free(str->data); | 406 | free(str->data); |
405 | str->data = data; | 407 | str->data = data; |
406 | str->length = len; | 408 | str->length = len; |
@@ -434,8 +436,10 @@ ASN1_STRING_free(ASN1_STRING *a) | |||
434 | { | 436 | { |
435 | if (a == NULL) | 437 | if (a == NULL) |
436 | return; | 438 | return; |
437 | if (a->data && !(a->flags & ASN1_STRING_FLAG_NDEF)) | 439 | if (a->data != NULL && !(a->flags & ASN1_STRING_FLAG_NDEF)) { |
440 | explicit_bzero(a->data, a->length); | ||
438 | free(a->data); | 441 | free(a->data); |
442 | } | ||
439 | free(a); | 443 | free(a); |
440 | } | 444 | } |
441 | 445 | ||
diff --git a/src/lib/libssl/src/crypto/asn1/a_object.c b/src/lib/libssl/src/crypto/asn1/a_object.c index 7bcabec034..fcd6aa91fe 100644 --- a/src/lib/libssl/src/crypto/asn1/a_object.c +++ b/src/lib/libssl/src/crypto/asn1/a_object.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: a_object.c,v 1.24 2015/02/10 08:33:10 jsing Exp $ */ | 1 | /* $OpenBSD: a_object.c,v 1.25 2016/03/06 18:05:00 beck 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 | * |
@@ -380,6 +380,8 @@ ASN1_OBJECT_free(ASN1_OBJECT *a) | |||
380 | a->sn = a->ln = NULL; | 380 | a->sn = a->ln = NULL; |
381 | } | 381 | } |
382 | if (a->flags & ASN1_OBJECT_FLAG_DYNAMIC_DATA) { | 382 | if (a->flags & ASN1_OBJECT_FLAG_DYNAMIC_DATA) { |
383 | if (a->data != NULL) | ||
384 | explicit_bzero((void *)a->data, a->length); | ||
383 | free((void *)a->data); | 385 | free((void *)a->data); |
384 | a->data = NULL; | 386 | a->data = NULL; |
385 | a->length = 0; | 387 | a->length = 0; |
diff --git a/src/lib/libssl/src/crypto/asn1/asn1_lib.c b/src/lib/libssl/src/crypto/asn1/asn1_lib.c index 5d14a2780f..444a34c072 100644 --- a/src/lib/libssl/src/crypto/asn1/asn1_lib.c +++ b/src/lib/libssl/src/crypto/asn1/asn1_lib.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: asn1_lib.c,v 1.36 2015/07/29 14:53:20 jsing Exp $ */ | 1 | /* $OpenBSD: asn1_lib.c,v 1.37 2016/03/06 18:05:00 beck 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 | * |
@@ -401,6 +401,8 @@ ASN1_STRING_set(ASN1_STRING *str, const void *_data, int len) | |||
401 | void | 401 | void |
402 | ASN1_STRING_set0(ASN1_STRING *str, void *data, int len) | 402 | ASN1_STRING_set0(ASN1_STRING *str, void *data, int len) |
403 | { | 403 | { |
404 | if (str->data != NULL) | ||
405 | explicit_bzero(str->data, str->length); | ||
404 | free(str->data); | 406 | free(str->data); |
405 | str->data = data; | 407 | str->data = data; |
406 | str->length = len; | 408 | str->length = len; |
@@ -434,8 +436,10 @@ ASN1_STRING_free(ASN1_STRING *a) | |||
434 | { | 436 | { |
435 | if (a == NULL) | 437 | if (a == NULL) |
436 | return; | 438 | return; |
437 | if (a->data && !(a->flags & ASN1_STRING_FLAG_NDEF)) | 439 | if (a->data != NULL && !(a->flags & ASN1_STRING_FLAG_NDEF)) { |
440 | explicit_bzero(a->data, a->length); | ||
438 | free(a->data); | 441 | free(a->data); |
442 | } | ||
439 | free(a); | 443 | free(a); |
440 | } | 444 | } |
441 | 445 | ||