diff options
| author | jsing <> | 2018-05-13 13:49:04 +0000 |
|---|---|---|
| committer | jsing <> | 2018-05-13 13:49:04 +0000 |
| commit | dd634962b1f7cdf02d75205b37dc1cebddeeb864 (patch) | |
| tree | bece618688930dfa8a3bd25dff0c001f6b6706df /src/lib/libcrypto/malloc-wrapper.c | |
| parent | 675abe1d8052e9013aafab06d42a244160518f8c (diff) | |
| download | openbsd-dd634962b1f7cdf02d75205b37dc1cebddeeb864.tar.gz openbsd-dd634962b1f7cdf02d75205b37dc1cebddeeb864.tar.bz2 openbsd-dd634962b1f7cdf02d75205b37dc1cebddeeb864.zip | |
Turn CRYPTO_realloc_clean() into a recallocarray() wrapper.
ok beck@ tb@
Diffstat (limited to 'src/lib/libcrypto/malloc-wrapper.c')
| -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 |
