summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorbeck <>2014-04-17 16:30:59 +0000
committerbeck <>2014-04-17 16:30:59 +0000
commit1d8c2b5d17c36de9739c947ea93d6c3ecf0f3d08 (patch)
tree6cdaf78fbbcfbaa523a160b76824a48edf167c52 /src
parent52f11019fedf648d558adc2d1d5598ffbcd720cc (diff)
downloadopenbsd-1d8c2b5d17c36de9739c947ea93d6c3ecf0f3d08.tar.gz
openbsd-1d8c2b5d17c36de9739c947ea93d6c3ecf0f3d08.tar.bz2
openbsd-1d8c2b5d17c36de9739c947ea93d6c3ecf0f3d08.zip
remove OPENSSL_realloc_clean usage here - replace with intrinsics to make
it obvious what should happen. ok tedu@
Diffstat (limited to 'src')
-rw-r--r--src/lib/libcrypto/buffer/buffer.c11
-rw-r--r--src/lib/libssl/src/crypto/buffer/buffer.c11
2 files changed, 14 insertions, 8 deletions
diff --git a/src/lib/libcrypto/buffer/buffer.c b/src/lib/libcrypto/buffer/buffer.c
index 4bd55c04ae..a50c30a348 100644
--- a/src/lib/libcrypto/buffer/buffer.c
+++ b/src/lib/libcrypto/buffer/buffer.c
@@ -153,10 +153,13 @@ BUF_MEM_grow_clean(BUF_MEM *str, size_t len)
153 return 0; 153 return 0;
154 } 154 }
155 n = (len + 3) / 3 * 4; 155 n = (len + 3) / 3 * 4;
156 if (str->data == NULL) 156 ret = malloc(n);
157 ret = malloc(n); 157 /* we're not shrinking - that case returns above */
158 else 158 if ((ret != NULL) && (str->data != NULL)) {
159 ret = OPENSSL_realloc_clean(str->data, str->max, n); 159 memcpy(ret, str->data, str->max);
160 explicit_bzero(str->data, str->max);
161 free(str->data);
162 }
160 if (ret == NULL) { 163 if (ret == NULL) {
161 BUFerr(BUF_F_BUF_MEM_GROW_CLEAN, ERR_R_MALLOC_FAILURE); 164 BUFerr(BUF_F_BUF_MEM_GROW_CLEAN, ERR_R_MALLOC_FAILURE);
162 len = 0; 165 len = 0;
diff --git a/src/lib/libssl/src/crypto/buffer/buffer.c b/src/lib/libssl/src/crypto/buffer/buffer.c
index 4bd55c04ae..a50c30a348 100644
--- a/src/lib/libssl/src/crypto/buffer/buffer.c
+++ b/src/lib/libssl/src/crypto/buffer/buffer.c
@@ -153,10 +153,13 @@ BUF_MEM_grow_clean(BUF_MEM *str, size_t len)
153 return 0; 153 return 0;
154 } 154 }
155 n = (len + 3) / 3 * 4; 155 n = (len + 3) / 3 * 4;
156 if (str->data == NULL) 156 ret = malloc(n);
157 ret = malloc(n); 157 /* we're not shrinking - that case returns above */
158 else 158 if ((ret != NULL) && (str->data != NULL)) {
159 ret = OPENSSL_realloc_clean(str->data, str->max, n); 159 memcpy(ret, str->data, str->max);
160 explicit_bzero(str->data, str->max);
161 free(str->data);
162 }
160 if (ret == NULL) { 163 if (ret == NULL) {
161 BUFerr(BUF_F_BUF_MEM_GROW_CLEAN, ERR_R_MALLOC_FAILURE); 164 BUFerr(BUF_F_BUF_MEM_GROW_CLEAN, ERR_R_MALLOC_FAILURE);
162 len = 0; 165 len = 0;