aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Jones <thj@FreeBSD.org>2022-01-27 17:17:13 +0000
committerDag-Erling Smørgrav <des@FreeBSD.org>2024-01-17 15:52:02 +0000
commitab215565c81a0dc1f97635cc0647084ad1480ba3 (patch)
tree40ef2b71f00be158031afdad7aaea1db10185ba9
parent2a22edfc70ad442bdf5060f48ea673faebfaa386 (diff)
downloadsrc-ab215565c81a0dc1f97635cc0647084ad1480ba3.tar.gz
src-ab215565c81a0dc1f97635cc0647084ad1480ba3.zip
Fix test output when gzip is run with -tlv
When run with test, verbose and list we need to parse the file otherwise the test output is "NOT OK" even for the file is valid. Reviewed by: kevans, allanjude, imp Sponsored by: Klara Inc. Differential Revision: https://reviews.freebsd.org/D34046 (cherry picked from commit 21c966a6b9f2e9110b8dc2a822ad2b4583f4f18b)
-rw-r--r--usr.bin/gzip/gzip.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/usr.bin/gzip/gzip.c b/usr.bin/gzip/gzip.c
index 95525f99b881..a21039aeb59c 100644
--- a/usr.bin/gzip/gzip.c
+++ b/usr.bin/gzip/gzip.c
@@ -1654,10 +1654,13 @@ file_uncompress(char *file, char *outfile, size_t outsize)
case FT_XZ:
if (lflag) {
size = unxz_len(fd);
- print_list_out(in_size, size, file);
- return -1;
- }
- size = unxz(fd, zfd, NULL, 0, NULL);
+ if (!tflag) {
+ print_list_out(in_size, size, file);
+ close(fd);
+ return -1;
+ }
+ } else
+ size = unxz(fd, zfd, NULL, 0, NULL);
break;
#endif
@@ -1682,8 +1685,10 @@ file_uncompress(char *file, char *outfile, size_t outsize)
default:
if (lflag) {
print_list(fd, in_size, outfile, isb.st_mtime);
- close(fd);
- return -1; /* XXX */
+ if (!tflag) {
+ close(fd);
+ return -1; /* XXX */
+ }
}
size = gz_uncompress(fd, zfd, NULL, 0, NULL, file);