aboutsummaryrefslogtreecommitdiffstats
path: root/apps/apps.c
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>2016-05-11 21:14:57 +0100
committerDr. Stephen Henson <steve@openssl.org>2016-05-12 12:02:38 +0100
commit7c0ef8431845ea741012a5a6ff7063dca801fadd (patch)
tree29a5fe81356f6baf98b7d6162367879cd1e38ecb /apps/apps.c
parent3dfcb6a0ecbc210899e4b674331d0294189281b9 (diff)
downloadopenssl-7c0ef8431845ea741012a5a6ff7063dca801fadd.tar.gz
Don't leak memory if realloc fails.
RT#4403 Reviewed-by: Viktor Dukhovni <viktor@openssl.org>
Diffstat (limited to 'apps/apps.c')
-rw-r--r--apps/apps.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/apps/apps.c b/apps/apps.c
index 537d43ab35..c7e01b0cc4 100644
--- a/apps/apps.c
+++ b/apps/apps.c
@@ -176,8 +176,6 @@ int chopup_args(ARGS *arg, char *buf)
if (arg->size == 0) {
arg->size = 20;
arg->argv = app_malloc(sizeof(*arg->argv) * arg->size, "argv space");
- if (arg->argv == NULL)
- return 0;
}
for (p = buf;;) {
@@ -189,11 +187,12 @@ int chopup_args(ARGS *arg, char *buf)
/* The start of something good :-) */
if (arg->argc >= arg->size) {
+ char **tmp;
arg->size += 20;
- arg->argv = OPENSSL_realloc(arg->argv,
- sizeof(*arg->argv) * arg->size);
- if (arg->argv == NULL)
+ tmp = OPENSSL_realloc(arg->argv, sizeof(*arg->argv) * arg->size);
+ if (tmp == NULL)
return 0;
+ arg->argv = tmp;
}
quoted = *p == '\'' || *p == '"';
if (quoted)