summaryrefslogtreecommitdiff
path: root/ext/zip/lib/zip_dirent.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/zip/lib/zip_dirent.c')
-rw-r--r--ext/zip/lib/zip_dirent.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/ext/zip/lib/zip_dirent.c b/ext/zip/lib/zip_dirent.c
index b5b9d273be..b9dac5c989 100644
--- a/ext/zip/lib/zip_dirent.c
+++ b/ext/zip/lib/zip_dirent.c
@@ -157,11 +157,17 @@ _zip_cdir_write(struct zip_cdir *cd, FILE *fp, struct zip_error *error)
void
_zip_dirent_finalize(struct zip_dirent *zde)
{
- free(zde->filename);
+ if (zde->filename_len > 0) {
+ free(zde->filename);
+ }
zde->filename = NULL;
- free(zde->extrafield);
+ if (zde->extrafield_len > 0) {
+ free(zde->extrafield);
+ }
zde->extrafield = NULL;
- free(zde->comment);
+ if (zde->comment_len > 0) {
+ free(zde->comment);
+ }
zde->comment = NULL;
}