diff options
| author | jsing <> | 2020-09-16 05:52:04 +0000 |
|---|---|---|
| committer | jsing <> | 2020-09-16 05:52:04 +0000 |
| commit | cdfaa096c0627eb79cb2944893d873d3aa00f2fc (patch) | |
| tree | 5be57759a85380e498c7d6d164a768c972e9ca1a | |
| parent | c77cfc6cbd58d3cb87224ddeeee1ba8d7254bf61 (diff) | |
| download | openbsd-cdfaa096c0627eb79cb2944893d873d3aa00f2fc.tar.gz openbsd-cdfaa096c0627eb79cb2944893d873d3aa00f2fc.tar.bz2 openbsd-cdfaa096c0627eb79cb2944893d873d3aa00f2fc.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@
Diffstat (limited to '')
| -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); |
