diff options
Diffstat (limited to 'ext/zip')
| -rw-r--r-- | ext/zip/lib/zip_close.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/ext/zip/lib/zip_close.c b/ext/zip/lib/zip_close.c index a5a1bc094d..e701321a81 100644 --- a/ext/zip/lib/zip_close.c +++ b/ext/zip/lib/zip_close.c @@ -527,13 +527,14 @@ _zip_create_temp_output(struct zip *za, FILE **outp) char *temp; int tfd; FILE *tfp; + int len = strlen(za->zn) + 8; - if ((temp=(char *)malloc(strlen(za->zn)+8)) == NULL) { + if ((temp=(char *)malloc(len)) == NULL) { _zip_error_set(&za->error, ZIP_ER_MEMORY, 0); return NULL; } - snprintf(temp, sizeof(temp), "%s.XXXXXX", za->zn); + snprintf(temp, len, "%s.XXXXXX", za->zn); if ((tfd=mkstemp(temp)) == -1) { _zip_error_set(&za->error, ZIP_ER_TMPOPEN, errno); |
