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
267 seek_sub_file(src_stream, file_entry->size); 267 seek_sub_file(src_stream, file_entry->size);
268 } 268 }
269 free(file_entry->name); /* may be null, but doesn't matter */ 269 free(file_entry->name); /* may be null, but doesn't matter */
270 free(file_entry->link_name); 270 if (file_entry->link_name) {
271 free(file_entry->link_name);
272 }
271 free(file_entry); 273 free(file_entry);
272 } 274 }
273 return(buffer); 275 return(buffer);
@@ -614,8 +616,10 @@ char *deb_extract(const char *package_filename, FILE *out_stream,
614 fclose(deb_stream); 616 fclose(deb_stream);
615 fclose(uncompressed_stream); 617 fclose(uncompressed_stream);
616 free(ared_file); 618 free(ared_file);
617 free(file_list[0]); 619 if (filename != NULL) {
618 free(file_list); 620 free(file_list[0]);
621 free(file_list);
622 }
619 return(output_buffer); 623 return(output_buffer);
620} 624}
621#endif 625#endif