diff options
-rw-r--r-- | src/lib/libssl/bs_cbs.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/lib/libssl/bs_cbs.c b/src/lib/libssl/bs_cbs.c index 8d55871592..ab76b78927 100644 --- a/src/lib/libssl/bs_cbs.c +++ b/src/lib/libssl/bs_cbs.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: bs_cbs.c,v 1.20 2021/05/16 10:58:27 jsing Exp $ */ | 1 | /* $OpenBSD: bs_cbs.c,v 1.21 2021/10/31 06:48:54 jsing Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2014, Google Inc. | 3 | * Copyright (c) 2014, Google Inc. |
4 | * | 4 | * |
@@ -95,6 +95,11 @@ int | |||
95 | CBS_strdup(const CBS *cbs, char **out_ptr) | 95 | CBS_strdup(const CBS *cbs, char **out_ptr) |
96 | { | 96 | { |
97 | free(*out_ptr); | 97 | free(*out_ptr); |
98 | *out_ptr = NULL; | ||
99 | |||
100 | if (CBS_contains_zero_byte(cbs)) | ||
101 | return 0; | ||
102 | |||
98 | *out_ptr = strndup((const char *)cbs->data, cbs->len); | 103 | *out_ptr = strndup((const char *)cbs->data, cbs->len); |
99 | return (*out_ptr != NULL); | 104 | return (*out_ptr != NULL); |
100 | } | 105 | } |