X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=archival%2Funzip.c;h=8ba39e9af936440d576cd36b9cae0ffd835b6a77;hb=768945b762b8850691acd2b63116eed18faa1812;hp=bb7197d3e4a424f0c51adabab76193bd388ea255;hpb=986ab525b808258a5a79ed2cded531cfae76f81d;p=oweals%2Fbusybox.git diff --git a/archival/unzip.c b/archival/unzip.c index bb7197d3e..8ba39e9af 100644 --- a/archival/unzip.c +++ b/archival/unzip.c @@ -86,7 +86,7 @@ static void unzip_skip(int fd, off_t skip) static void unzip_read(int fd, void *buf, size_t count) { if (bb_xread(fd, buf, count) != count) { - bb_error_msg_and_die("Read failure"); + bb_error_msg_and_die(bb_msg_read_error); } } @@ -95,7 +95,7 @@ static void unzip_create_leading_dirs(char *fn) /* Create all leading directories */ char *name = bb_xstrdup(fn); if (bb_make_directory(dirname(name), 0777, FILEUTILS_RECUR)) { - bb_error_msg_and_die("Failed to create directory"); + bb_error_msg_and_die("Exiting"); /* bb_make_directory is noisy */ } free(name); } @@ -180,7 +180,7 @@ int unzip_main(int argc, char **argv) case 1: /* Include files */ if (opt == 1) { - zaccept = llist_add_to(zaccept, optarg); + llist_add_to(&zaccept, optarg); } else if (opt == 'd') { base_dir = optarg; @@ -196,7 +196,7 @@ int unzip_main(int argc, char **argv) case 2 : /* Exclude files */ if (opt == 1) { - zreject = llist_add_to(zreject, optarg); + llist_add_to(&zreject, optarg); } else if (opt == 'd') { /* Extract to base directory */ base_dir = optarg; @@ -236,9 +236,8 @@ int unzip_main(int argc, char **argv) } /* Change dir if necessary */ - if (base_dir && chdir(base_dir)) { - bb_perror_msg_and_die("Cannot chdir"); - } + if (base_dir) + bb_xchdir(base_dir); if (verbosity != v_silent) printf("Archive: %s\n", src_fn); @@ -276,16 +275,15 @@ int unzip_main(int argc, char **argv) /* Read filename */ free(dst_fn); - dst_fn = xmalloc(zip_header.formated.filename_len + 1); + dst_fn = xzalloc(zip_header.formated.filename_len + 1); unzip_read(src_fd, dst_fn, zip_header.formated.filename_len); - dst_fn[zip_header.formated.filename_len] = 0; /* Skip extra header bytes */ unzip_skip(src_fd, zip_header.formated.extra_len); if ((verbosity == v_list) && !list_header_done){ - printf(" Length Date Time Name\n"); - printf(" -------- ---- ---- ----\n"); + printf(" Length Date Time Name\n" + " -------- ---- ---- ----\n"); list_header_done = 1; } @@ -323,7 +321,7 @@ int unzip_main(int argc, char **argv) } unzip_create_leading_dirs(dst_fn); if (bb_make_directory(dst_fn, 0777, 0)) { - bb_error_msg_and_die("Failed to create directory"); + bb_error_msg_and_die("Exiting"); } } else { if (!S_ISDIR(stat_buf.st_mode)) { @@ -418,12 +416,3 @@ int unzip_main(int argc, char **argv) return failed; } - -/* END CODE */ -/* -Local Variables: -c-file-style: "linux" -c-basic-offset: 4 -tab-width: 4 -End: -*/