diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2011-10-31 01:05:16 +0100 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2011-10-31 01:05:16 +0100 |
commit | c531b9a3e4a90fd7c91c78a6991e30bfe0134f34 (patch) | |
tree | 63883e7ad41456977664c0a4f2d3b36d980bebd7 /archival/bbunzip.c | |
parent | b076193f741740886a6771cfe7750adb58ce18a0 (diff) | |
download | busybox-w32-c531b9a3e4a90fd7c91c78a6991e30bfe0134f34.tar.gz busybox-w32-c531b9a3e4a90fd7c91c78a6991e30bfe0134f34.tar.bz2 busybox-w32-c531b9a3e4a90fd7c91c78a6991e30bfe0134f34.zip |
bzcat: fix unpacking of more than one file, and unpacking of zero-size bz2. Closes 4393
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'archival/bbunzip.c')
-rw-r--r-- | archival/bbunzip.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/archival/bbunzip.c b/archival/bbunzip.c index 9c1a73780..853c653c0 100644 --- a/archival/bbunzip.c +++ b/archival/bbunzip.c | |||
@@ -103,7 +103,9 @@ int FAST_FUNC bbunpack(char **argv, | |||
103 | status = unpacker(&info); | 103 | status = unpacker(&info); |
104 | if (status < 0) | 104 | if (status < 0) |
105 | exitcode = 1; | 105 | exitcode = 1; |
106 | xclose(STDOUT_FILENO); /* with error check! */ | 106 | |
107 | if (!(option_mask32 & OPT_STDOUT)) | ||
108 | xclose(STDOUT_FILENO); /* with error check! */ | ||
107 | 109 | ||
108 | if (filename) { | 110 | if (filename) { |
109 | char *del = new_name; | 111 | char *del = new_name; |
@@ -143,6 +145,9 @@ int FAST_FUNC bbunpack(char **argv, | |||
143 | } | 145 | } |
144 | } while (*argv && *++argv); | 146 | } while (*argv && *++argv); |
145 | 147 | ||
148 | if (option_mask32 & OPT_STDOUT) | ||
149 | xclose(STDOUT_FILENO); /* with error check! */ | ||
150 | |||
146 | return exitcode; | 151 | return exitcode; |
147 | } | 152 | } |
148 | 153 | ||