diff options
author | jsing <> | 2018-05-13 13:49:04 +0000 |
---|---|---|
committer | jsing <> | 2018-05-13 13:49:04 +0000 |
commit | 97a5a388e1be5810090135a4ca7dbaa8b5d91183 (patch) | |
tree | bece618688930dfa8a3bd25dff0c001f6b6706df | |
parent | 294ab72401fb4b21de1eb8cfc698fba7c7f676f9 (diff) | |
download | openbsd-97a5a388e1be5810090135a4ca7dbaa8b5d91183.tar.gz openbsd-97a5a388e1be5810090135a4ca7dbaa8b5d91183.tar.bz2 openbsd-97a5a388e1be5810090135a4ca7dbaa8b5d91183.zip |
Turn CRYPTO_realloc_clean() into a recallocarray() wrapper.
ok beck@ tb@
-rw-r--r-- | src/lib/libcrypto/malloc-wrapper.c | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/src/lib/libcrypto/malloc-wrapper.c b/src/lib/libcrypto/malloc-wrapper.c index 12867387bf..cb9a31186d 100644 --- a/src/lib/libcrypto/malloc-wrapper.c +++ b/src/lib/libcrypto/malloc-wrapper.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: malloc-wrapper.c,v 1.6 2017/05/02 03:59:44 deraadt Exp $ */ | 1 | /* $OpenBSD: malloc-wrapper.c,v 1.7 2018/05/13 13:49:04 jsing Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2014 Bob Beck | 3 | * Copyright (c) 2014 Bob Beck |
4 | * | 4 | * |
@@ -148,7 +148,6 @@ CRYPTO_realloc(void *ptr, int num, const char *file, int line) | |||
148 | { | 148 | { |
149 | if (num <= 0) | 149 | if (num <= 0) |
150 | return NULL; | 150 | return NULL; |
151 | |||
152 | return realloc(ptr, num); | 151 | return realloc(ptr, num); |
153 | } | 152 | } |
154 | 153 | ||
@@ -156,18 +155,12 @@ void * | |||
156 | CRYPTO_realloc_clean(void *ptr, int old_len, int num, const char *file, | 155 | CRYPTO_realloc_clean(void *ptr, int old_len, int num, const char *file, |
157 | int line) | 156 | int line) |
158 | { | 157 | { |
159 | void *ret = NULL; | ||
160 | |||
161 | if (num <= 0) | 158 | if (num <= 0) |
162 | return NULL; | 159 | return NULL; |
160 | /* Original does not support shrinking. */ | ||
163 | if (num < old_len) | 161 | if (num < old_len) |
164 | return NULL; /* original does not support shrinking */ | 162 | return NULL; |
165 | ret = malloc(num); | 163 | return recallocarray(ptr, old_len, num, 1); |
166 | if (ret && ptr && old_len > 0) { | ||
167 | memcpy(ret, ptr, old_len); | ||
168 | freezero(ptr, old_len); | ||
169 | } | ||
170 | return ret; | ||
171 | } | 164 | } |
172 | 165 | ||
173 | void | 166 | void |