projects
/
openssl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Don't leak memory if realloc fails.
[openssl.git]
/
apps
/
engine.c
diff --git
a/apps/engine.c
b/apps/engine.c
index b60bfbc29416a536c5456f697a4638ef46e7879a..3b395b1c7d24cde2d60ebbfd592382edd15d15a6 100644
(file)
--- a/
apps/engine.c
+++ b/
apps/engine.c
@@
-107,13
+107,17
@@
static int append_buf(char **buf, int *size, const char *s)
}
if (strlen(*buf) + strlen(s) >= (unsigned int)*size) {
}
if (strlen(*buf) + strlen(s) >= (unsigned int)*size) {
+ char *tmp;
*size += 256;
*size += 256;
- *buf = OPENSSL_realloc(*buf, *size);
+ tmp = OPENSSL_realloc(*buf, *size);
+ if (tmp == NULL) {
+ OPENSSL_free(*buf);
+ *buf = NULL;
+ return 0;
+ }
+ *buf = tmp;
}
}
- if (*buf == NULL)
- return 0;
-
if (**buf != '\0')
OPENSSL_strlcat(*buf, ", ", *size);
OPENSSL_strlcat(*buf, s, *size);
if (**buf != '\0')
OPENSSL_strlcat(*buf, ", ", *size);
OPENSSL_strlcat(*buf, s, *size);