From 3f4b79e8ce98192e59d6488e2e8f9fe178487571 Mon Sep 17 00:00:00 2001 From: graham.gower Date: Sun, 15 Nov 2009 02:14:38 -0500 Subject: I'm still seeing leaks here. So just stop allocating for these variables. git-svn-id: http://opkg.googlecode.com/svn/trunk@303 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358 --- diff --git a/libbb/unarchive.c b/libbb/unarchive.c index c9eb4d0..bd10ad9 100644 --- a/libbb/unarchive.c +++ b/libbb/unarchive.c @@ -729,7 +729,7 @@ void free_header_tar(file_header_t *tar_entry) char *deb_extract(const char *package_filename, FILE *out_stream, const int extract_function, const char *prefix, const char *filename) { - FILE *deb_stream; + FILE *deb_stream = NULL; FILE *uncompressed_stream = NULL; file_header_t *ar_header = NULL; char **file_list = NULL; @@ -740,15 +740,15 @@ char *deb_extract(const char *package_filename, FILE *out_stream, if (filename != NULL) { file_list = xmalloc(sizeof(char *) * 2); - file_list[0] = xstrdup(filename); + file_list[0] = filename; file_list[1] = NULL; } if (extract_function & extract_control_tar_gz) { - ared_file = xstrdup("control.tar.gz"); + ared_file = "control.tar.gz"; } else if (extract_function & extract_data_tar_gz) { - ared_file = xstrdup("data.tar.gz"); + ared_file = "data.tar.gz"; } else { fprintf(stderr, "no file specified to extract -- extract_function=%x\n", extract_function); goto cleanup; @@ -837,13 +837,10 @@ char *deb_extract(const char *package_filename, FILE *out_stream, } cleanup: - free(ared_file); if (deb_stream) fclose(deb_stream); - if (file_list) { - free(file_list[0]); + if (file_list) free(file_list); - } return output_buffer; } -- cgit v0.9.1