summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortb <>2022-07-07 17:12:15 +0000
committertb <>2022-07-07 17:12:15 +0000
commitb7b2f8cb86a1e146a8703597848c9787d85dcbbe (patch)
tree5926165a1c065edaefcc58a58285a311e317d26f
parent5272cf687fc3fa40b04b2cee3322b671de2857a8 (diff)
downloadopenbsd-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.c5
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