summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjsing <>2018-05-13 13:49:04 +0000
committerjsing <>2018-05-13 13:49:04 +0000
commit97a5a388e1be5810090135a4ca7dbaa8b5d91183 (patch)
treebece618688930dfa8a3bd25dff0c001f6b6706df
parent294ab72401fb4b21de1eb8cfc698fba7c7f676f9 (diff)
downloadopenbsd-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.c15
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 *
156CRYPTO_realloc_clean(void *ptr, int old_len, int num, const char *file, 155CRYPTO_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
173void 166void