pigz: fix one failure of command "unpigz -l"

Refer [1], "unpigz -l" failed with error:
$ ./unpigz -l test.txt.gz
compressed original reduced name
228799 209715200 99.9% test.txt
unpigz: can't destroy locked resource (pigz.c:2622:mutex_destroy)
unpigz: abort: internal threads error

or

$ ./unpigz -l test.txt.gz
unpigz: skipping: test.txt.gz unrecognized format
unpigz: can't destroy locked resource (pigz.c:2622:mutex_destroy)
unpigz: abort: internal threads error

[1] https://github.com/madler/pigz/issues/96

(From OE-Core rev: b8e0bcecce31af29d04d4b694ebddb33b1e5710a)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Changqing Li
2022-01-17 16:11:04 +08:00
committed by Richard Purdie
parent 883341e9ca
commit be73d9cb25
2 changed files with 52 additions and 1 deletions

View File

@@ -0,0 +1,50 @@
From 65986f3d12d434b9bc428ceb6fcb1f6eeeb2c47d Mon Sep 17 00:00:00 2001
From: Changqing Li <changqing.li@windriver.com>
Date: Mon, 17 Jan 2022 15:36:56 +0800
Subject: [PATCH] Fix bug when combining -l with -d.
Though it makes no sense to do pigz -ld, that is implicit when
doing unpigz -l. This commit fixes a bug for that combination.
Upstream-Status: Backport [https://github.com/madler/pigz/commit/326bba44aa102c707dd6ebcd2fc3f413b3119db0]
Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
pigz.c | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/pigz.c b/pigz.c
index f90157f..d648216 100644
--- a/pigz.c
+++ b/pigz.c
@@ -4007,6 +4007,13 @@ local void process(char *path) {
}
SET_BINARY_MODE(g.ind);
+ // if requested, just list information about the input file
+ if (g.list && g.decode != 2) {
+ list_info();
+ load_end();
+ return;
+ }
+
// if decoding or testing, try to read gzip header
if (g.decode) {
in_init();
@@ -4048,13 +4055,6 @@ local void process(char *path) {
}
}
- // if requested, just list information about input file
- if (g.list) {
- list_info();
- load_end();
- return;
- }
-
// create output file out, descriptor outd
if (path == NULL || g.pipeout) {
// write to stdout
--
2.17.1

View File

@@ -8,7 +8,8 @@ SECTION = "console/utils"
LICENSE = "Zlib & Apache-2.0"
LIC_FILES_CHKSUM = "file://pigz.c;md5=9ae6dee8ceba9610596ed0ada493d142;beginline=7;endline=21"
SRC_URI = "http://zlib.net/${BPN}/fossils/${BP}.tar.gz"
SRC_URI = "http://zlib.net/${BPN}/fossils/${BP}.tar.gz \
file://0001-Fix-bug-when-combining-l-with-d.patch"
SRC_URI[sha256sum] = "2eed7b0d7449d1d70903f2a62cd6005d262eb3a8c9e98687bc8cbb5809db2a7d"
PROVIDES:class-native += "gzip-native"