summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortedu <>2014-05-17 17:35:04 +0000
committertedu <>2014-05-17 17:35:04 +0000
commita0400d85abf0e363ba5b1fc257be8af941da409b (patch)
tree44c6b93c129b2a2b07f558a6f9db4bc7a169a9d6 /src
parent79e9593ed1ba7556673f2652fa981270f29b65f4 (diff)
downloadopenbsd-a0400d85abf0e363ba5b1fc257be8af941da409b.tar.gz
openbsd-a0400d85abf0e363ba5b1fc257be8af941da409b.tar.bz2
openbsd-a0400d85abf0e363ba5b1fc257be8af941da409b.zip
simple reallocarray to check multiplies. ok guenther
Diffstat (limited to 'src')
-rw-r--r--src/lib/libcrypto/stack/stack.c10
-rw-r--r--src/lib/libssl/src/crypto/stack/stack.c10
2 files changed, 8 insertions, 12 deletions
diff --git a/src/lib/libcrypto/stack/stack.c b/src/lib/libcrypto/stack/stack.c
index a409a7e967..0224bfce74 100644
--- a/src/lib/libcrypto/stack/stack.c
+++ b/src/lib/libcrypto/stack/stack.c
@@ -98,8 +98,7 @@ sk_dup(_STACK *sk)
98 98
99 if ((ret = sk_new(sk->comp)) == NULL) 99 if ((ret = sk_new(sk->comp)) == NULL)
100 goto err; 100 goto err;
101 s = (char **)realloc((char *)ret->data, 101 s = reallocarray(ret->data, sk->num_alloc, sizeof(char *));
102 (unsigned int)sizeof(char *) * sk->num_alloc);
103 if (s == NULL) 102 if (s == NULL)
104 goto err; 103 goto err;
105 ret->data = s; 104 ret->data = s;
@@ -131,7 +130,7 @@ sk_new(int (*c)(const void *, const void *))
131 130
132 if ((ret = malloc(sizeof(_STACK))) == NULL) 131 if ((ret = malloc(sizeof(_STACK))) == NULL)
133 goto err; 132 goto err;
134 if ((ret->data = malloc(sizeof(char *) * MIN_NODES)) == NULL) 133 if ((ret->data = reallocarray(NULL, MIN_NODES, sizeof(char *))) == NULL)
135 goto err; 134 goto err;
136 for (i = 0; i < MIN_NODES; i++) 135 for (i = 0; i < MIN_NODES; i++)
137 ret->data[i] = NULL; 136 ret->data[i] = NULL;
@@ -155,8 +154,7 @@ sk_insert(_STACK *st, void *data, int loc)
155 if (st == NULL) 154 if (st == NULL)
156 return 0; 155 return 0;
157 if (st->num_alloc <= st->num + 1) { 156 if (st->num_alloc <= st->num + 1) {
158 s = realloc((char *)st->data, 157 s = reallocarray(st->data, st->num_alloc, 2 * sizeof(char *));
159 (unsigned int)sizeof(char *) * st->num_alloc * 2);
160 if (s == NULL) 158 if (s == NULL)
161 return (0); 159 return (0);
162 st->data = s; 160 st->data = s;
@@ -296,7 +294,7 @@ sk_zero(_STACK *st)
296 return; 294 return;
297 if (st->num <= 0) 295 if (st->num <= 0)
298 return; 296 return;
299 memset((char *)st->data, 0, sizeof(st->data)*st->num); 297 memset(st->data, 0, sizeof(st->data)*st->num);
300 st->num = 0; 298 st->num = 0;
301} 299}
302 300
diff --git a/src/lib/libssl/src/crypto/stack/stack.c b/src/lib/libssl/src/crypto/stack/stack.c
index a409a7e967..0224bfce74 100644
--- a/src/lib/libssl/src/crypto/stack/stack.c
+++ b/src/lib/libssl/src/crypto/stack/stack.c
@@ -98,8 +98,7 @@ sk_dup(_STACK *sk)
98 98
99 if ((ret = sk_new(sk->comp)) == NULL) 99 if ((ret = sk_new(sk->comp)) == NULL)
100 goto err; 100 goto err;
101 s = (char **)realloc((char *)ret->data, 101 s = reallocarray(ret->data, sk->num_alloc, sizeof(char *));
102 (unsigned int)sizeof(char *) * sk->num_alloc);
103 if (s == NULL) 102 if (s == NULL)
104 goto err; 103 goto err;
105 ret->data = s; 104 ret->data = s;
@@ -131,7 +130,7 @@ sk_new(int (*c)(const void *, const void *))
131 130
132 if ((ret = malloc(sizeof(_STACK))) == NULL) 131 if ((ret = malloc(sizeof(_STACK))) == NULL)
133 goto err; 132 goto err;
134 if ((ret->data = malloc(sizeof(char *) * MIN_NODES)) == NULL) 133 if ((ret->data = reallocarray(NULL, MIN_NODES, sizeof(char *))) == NULL)
135 goto err; 134 goto err;
136 for (i = 0; i < MIN_NODES; i++) 135 for (i = 0; i < MIN_NODES; i++)
137 ret->data[i] = NULL; 136 ret->data[i] = NULL;
@@ -155,8 +154,7 @@ sk_insert(_STACK *st, void *data, int loc)
155 if (st == NULL) 154 if (st == NULL)
156 return 0; 155 return 0;
157 if (st->num_alloc <= st->num + 1) { 156 if (st->num_alloc <= st->num + 1) {
158 s = realloc((char *)st->data, 157 s = reallocarray(st->data, st->num_alloc, 2 * sizeof(char *));
159 (unsigned int)sizeof(char *) * st->num_alloc * 2);
160 if (s == NULL) 158 if (s == NULL)
161 return (0); 159 return (0);
162 st->data = s; 160 st->data = s;
@@ -296,7 +294,7 @@ sk_zero(_STACK *st)
296 return; 294 return;
297 if (st->num <= 0) 295 if (st->num <= 0)
298 return; 296 return;
299 memset((char *)st->data, 0, sizeof(st->data)*st->num); 297 memset(st->data, 0, sizeof(st->data)*st->num);
300 st->num = 0; 298 st->num = 0;
301} 299}
302 300