summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjsing <>2020-09-16 05:52:04 +0000
committerjsing <>2020-09-16 05:52:04 +0000
commit72d1faaa1dcafc7fcd01a3090ca62f38875b0a50 (patch)
tree5be57759a85380e498c7d6d164a768c972e9ca1a
parent8660475bbdacccc5f1131923e4bac54237a3b2b4 (diff)
downloadopenbsd-72d1faaa1dcafc7fcd01a3090ca62f38875b0a50.tar.gz
openbsd-72d1faaa1dcafc7fcd01a3090ca62f38875b0a50.tar.bz2
openbsd-72d1faaa1dcafc7fcd01a3090ca62f38875b0a50.zip
Avoid memset() before memcpy() for CBB_add_bytes().
CBB_add_bytes() calls CBB_add_space(), which now explicitly zeros memory to avoid information leaks. However CBB_add_bytes() calls memcpy() for the same memory region, so the memset() is unnecessary. Avoid this by inlining part of CBB_add_space() rather than calling it directly. ok beck@ tb@
-rw-r--r--src/lib/libssl/bs_cbb.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/lib/libssl/bs_cbb.c b/src/lib/libssl/bs_cbb.c
index d11da853cd..e734dd68fc 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.22 2020/03/13 15:54:34 jsing Exp $ */ 1/* $OpenBSD: bs_cbb.c,v 1.23 2020/09/16 05:52:04 jsing Exp $ */
2/* 2/*
3 * Copyright (c) 2014, Google Inc. 3 * Copyright (c) 2014, Google Inc.
4 * 4 *
@@ -361,7 +361,7 @@ CBB_add_bytes(CBB *cbb, const uint8_t *data, size_t len)
361{ 361{
362 uint8_t *dest; 362 uint8_t *dest;
363 363
364 if (!CBB_add_space(cbb, &dest, len)) 364 if (!CBB_flush(cbb) || !cbb_buffer_add(cbb->base, &dest, len))
365 return 0; 365 return 0;
366 366
367 memcpy(dest, data, len); 367 memcpy(dest, data, len);