Subject: [Patch][BUG] Wrong skip value in gzexe
From: Jakub Martisko <[email-masked]>
To: [email-masked]
Date: Tue, 26 Mar 2019 13:41:06 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

the skip value in gzexe seems to be wrong since the [1] commit. See the
attached patch/test. The problem and its solution has been originaly
reported here [2] (Mentioning just for the credit sake).

Thanks,
Jakub

[1]: http://git.savannah.gnu.org/cgit/gzip.git/commit/?id=63aa2268a5abfed0116d04bbe3952e4a753af91d
[2]: https://bugzilla.redhat.com/show_bug.cgi?id=1690825
From 21cd963565a43dabd59516bd4cca5c76a614f255 Mon Sep 17 00:00:00 2001
From: Jakub Martisko <[email-masked]>
Date: Tue, 26 Mar 2019 12:29:30 +0100
Subject: [PATCH] Fix: the value of the skip variable in the gzexe

---
 gzexe.in          |  4 ++--
 tests/Makefile.am |  1 +
 tests/gzexe       | 20 ++++++++++++++++++++
 3 files changed, 23 insertions(+), 2 deletions(-)
 create mode 100755 tests/gzexe

diff --git a/gzexe.in b/gzexe.in
index 6c61183..cffa84e 100644
--- a/gzexe.in
+++ b/gzexe.in
@@ -145,7 +145,7 @@ for i do
   if test $decomp -eq 0; then
     (cat <<'EOF' &&
 #!/bin/sh
-skip=44
+skip=49
 
 tab='	'
 nl='
@@ -201,7 +201,7 @@ EOF
 
   else
     # decompression
-    skip=44
+    skip=49
     skip_line=`sed -e 1d -e 2q "$file"`
     case $skip_line in
     skip=[0-9] | skip=[0-9][0-9] | skip=[0-9][0-9][0-9])
diff --git a/tests/Makefile.am b/tests/Makefile.am
index ebdce5b..4dfbccf 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -15,6 +15,7 @@
 # along with this program.  If not, see <https://www.gnu.org/licenses/>.
 
 TESTS =					\
+	gzexe				\
   gzip-env				\
   helin-segv				\
   help-version				\
diff --git a/tests/gzexe b/tests/gzexe
new file mode 100755
index 0000000..45f71c7
--- /dev/null
+++ b/tests/gzexe
@@ -0,0 +1,20 @@
+#!/bin/sh
+#Try running simple shell script compressed by gzexe
+
+. "${srcdir=.}/init.sh"; path_prepend_ ..
+
+cat <<EOF > foo || framework_failure_
+#!/bin/sh
+echo "Hello World!"
+EOF
+
+echo "Hello World!" > exp || framework_failure_
+
+fail=0
+gzexe foo || fail=1
+/bin/sh foo > out 2> err || fail=1
+
+compare exp out || fail=1
+test -s err && fail=1
+
+Exit $fail
-- 
2.21.0