diff options
author | tb <> | 2022-07-07 17:12:15 +0000 |
---|---|---|
committer | tb <> | 2022-07-07 17:12:15 +0000 |
commit | b7b2f8cb86a1e146a8703597848c9787d85dcbbe (patch) | |
tree | 5926165a1c065edaefcc58a58285a311e317d26f | |
parent | 5272cf687fc3fa40b04b2cee3322b671de2857a8 (diff) | |
download | openbsd-b7b2f8cb86a1e146a8703597848c9787d85dcbbe.tar.gz openbsd-b7b2f8cb86a1e146a8703597848c9787d85dcbbe.tar.bz2 openbsd-b7b2f8cb86a1e146a8703597848c9787d85dcbbe.zip |
Make CBB_finish() fail if *out_data is not NULL
Contrary to CBS_stow(), CBB_finish() will leak, so ensure we fail if
*out_data is populated.
Discussed with & ok jsing
-rw-r--r-- | src/lib/libssl/bs_cbb.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/lib/libssl/bs_cbb.c b/src/lib/libssl/bs_cbb.c index 95e53861f0..e2f87be4d2 100644 --- a/src/lib/libssl/bs_cbb.c +++ b/src/lib/libssl/bs_cbb.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: bs_cbb.c,v 1.27 2022/01/06 14:30:30 jsing Exp $ */ | 1 | /* $OpenBSD: bs_cbb.c,v 1.28 2022/07/07 17:12:15 tb Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2014, Google Inc. | 3 | * Copyright (c) 2014, Google Inc. |
4 | * | 4 | * |
@@ -163,6 +163,9 @@ CBB_finish(CBB *cbb, uint8_t **out_data, size_t *out_len) | |||
163 | */ | 163 | */ |
164 | return 0; | 164 | return 0; |
165 | 165 | ||
166 | if (out_data != NULL && *out_data != NULL) | ||
167 | return 0; | ||
168 | |||
166 | if (out_data != NULL) | 169 | if (out_data != NULL) |
167 | *out_data = cbb->base->buf; | 170 | *out_data = cbb->base->buf; |
168 | 171 | ||