aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libbb/unarchive.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/libbb/unarchive.c b/libbb/unarchive.c
index beb396929..e23acfff2 100644
--- a/libbb/unarchive.c
+++ b/libbb/unarchive.c
@@ -267,7 +267,9 @@ char *unarchive(FILE *src_stream, FILE *out_stream, file_header_t *(*get_headers
seek_sub_file(src_stream, file_entry->size);
}
free(file_entry->name); /* may be null, but doesn't matter */
- free(file_entry->link_name);
+ if (file_entry->link_name) {
+ free(file_entry->link_name);
+ }
free(file_entry);
}
return(buffer);
@@ -614,8 +616,10 @@ char *deb_extract(const char *package_filename, FILE *out_stream,
fclose(deb_stream);
fclose(uncompressed_stream);
free(ared_file);
- free(file_list[0]);
- free(file_list);
+ if (filename != NULL) {
+ free(file_list[0]);
+ free(file_list);
+ }
return(output_buffer);
}
#endif