diff options
author | jsing <> | 2020-09-16 05:52:04 +0000 |
---|---|---|
committer | jsing <> | 2020-09-16 05:52:04 +0000 |
commit | 72d1faaa1dcafc7fcd01a3090ca62f38875b0a50 (patch) | |
tree | 5be57759a85380e498c7d6d164a768c972e9ca1a | |
parent | 8660475bbdacccc5f1131923e4bac54237a3b2b4 (diff) | |
download | openbsd-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.c | 4 |
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); |