summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortb <>2025-05-24 19:45:34 +0000
committertb <>2025-05-24 19:45:34 +0000
commitcfa724cf6aec2c8b01b7611b510bc617bea7af64 (patch)
treefd557221697d0d1fff3dfb2f69a8c613557093d7 /src
parentff9d397e7e76ff6cf62ce357ec25a615036b5c55 (diff)
downloadopenbsd-cfa724cf6aec2c8b01b7611b510bc617bea7af64.tar.gz
openbsd-cfa724cf6aec2c8b01b7611b510bc617bea7af64.tar.bz2
openbsd-cfa724cf6aec2c8b01b7611b510bc617bea7af64.zip
Create bm->buf from the start to avoid arithmetic on NULL
This is a different way of avoiding the pointer arithmetic on NULL and avoids test breakage in pyca/cryptography. This is also a gross hack that penalizes existing callers of BIO_s_mem(), but this is rarely called in a hot loop and if so that will most likely be a test. ok kenjiro joshua jsing
Diffstat (limited to 'src')
-rw-r--r--src/lib/libcrypto/bio/bss_mem.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/lib/libcrypto/bio/bss_mem.c b/src/lib/libcrypto/bio/bss_mem.c
index 0936ab4e83..f977a123a7 100644
--- a/src/lib/libcrypto/bio/bss_mem.c
+++ b/src/lib/libcrypto/bio/bss_mem.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: bss_mem.c,v 1.25 2025/05/24 19:43:09 tb Exp $ */ 1/* $OpenBSD: bss_mem.c,v 1.26 2025/05/24 19:45:34 tb 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 *
@@ -162,6 +162,12 @@ mem_new(BIO *bio)
162 free(bm); 162 free(bm);
163 return 0; 163 return 0;
164 } 164 }
165 if (BUF_MEM_grow_clean(bm->buf, 64) != 64) {
166 BUF_MEM_free(bm->buf);
167 free(bm);
168 return 0;
169 }
170 bm->buf->length = 0;
165 171
166 bio->shutdown = 1; 172 bio->shutdown = 1;
167 bio->init = 1; 173 bio->init = 1;