diff options
Diffstat (limited to 'src/lib/libcrypto/asn1/a_object.c')
-rw-r--r-- | src/lib/libcrypto/asn1/a_object.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/lib/libcrypto/asn1/a_object.c b/src/lib/libcrypto/asn1/a_object.c index c6e4c77f92..c695499b31 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.46 2022/04/10 12:42:33 inoguchi Exp $ */ | 1 | /* $OpenBSD: a_object.c,v 1.47 2022/04/23 18:47:08 jsing 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 | * |
@@ -529,9 +529,14 @@ c2i_ASN1_OBJECT_cbs(ASN1_OBJECT **out_aobj, CBS *content) | |||
529 | size_t data_len; | 529 | size_t data_len; |
530 | CBS cbs; | 530 | CBS cbs; |
531 | 531 | ||
532 | if (out_aobj == NULL || *out_aobj != NULL) | 532 | if (out_aobj == NULL) |
533 | goto err; | 533 | goto err; |
534 | 534 | ||
535 | if (*out_aobj != NULL) { | ||
536 | ASN1_OBJECT_free(*out_aobj); | ||
537 | *out_aobj = NULL; | ||
538 | } | ||
539 | |||
535 | /* Parse and validate OID encoding per X.690 8.19.2. */ | 540 | /* Parse and validate OID encoding per X.690 8.19.2. */ |
536 | CBS_dup(content, &cbs); | 541 | CBS_dup(content, &cbs); |
537 | if (CBS_len(&cbs) == 0) { | 542 | if (CBS_len(&cbs) == 0) { |