diff options
author | Glenn L McGrath <bug1@ihug.co.nz> | 2001-07-11 07:22:17 +0000 |
---|---|---|
committer | Glenn L McGrath <bug1@ihug.co.nz> | 2001-07-11 07:22:17 +0000 |
commit | 248c57ca43b86e8e243f2770479b954a30549a61 (patch) | |
tree | 012577ccbe46f5ef825179d597e9747aa58869c4 | |
parent | 59e50f634a81a49d4d53e9b683d41af3b869706a (diff) | |
download | busybox-248c57ca43b86e8e243f2770479b954a30549a61.tar.gz |
minor dmalloc inspired cleanups
-rw-r--r-- | libbb/unarchive.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/libbb/unarchive.c b/libbb/unarchive.c index fe061ea12..a17f7af50 100644 --- a/libbb/unarchive.c +++ b/libbb/unarchive.c @@ -219,6 +219,9 @@ char *unarchive(FILE *src_stream, file_header_t *(*get_headers)(FILE *), int i; char *buffer = NULL; + if (extract_names == NULL) { + return(NULL); + } archive_offset = 0; while ((file_entry = get_headers(src_stream)) != NULL) { found = FALSE; @@ -259,7 +262,6 @@ file_header_t *get_header_ar(FILE *src_stream) static char *ar_long_names; if (fread(ar.raw, 1, 60, src_stream) != 60) { - free (ar_long_names); return(NULL); } archive_offset += 60; @@ -535,10 +537,14 @@ char *deb_extract(const char *package_filename, FILE *out_stream, char **file_list; int gunzip_pid; - file_list = malloc(sizeof(char *)); - file_list[0] = xstrdup(filename); - file_list[1] = NULL; - + if (filename == NULL) { + file_list = NULL; + } else { + file_list = xmalloc(sizeof(char *) * 3); + file_list[0] = xstrdup(filename); + file_list[1] = NULL; + } + if (extract_function & extract_control_tar_gz) { ared_file = xstrdup("control.tar.gz"); } |