From 4dae0a77440a20135e38e3434247651a82d0a57db5c9034f7e9f9d1091885fbf Mon Sep 17 00:00:00 2001 From: Kristyna Streitova Date: Tue, 13 Apr 2021 20:12:29 +0000 Subject: [PATCH] Accepting request 884997 from home:pgajdos - fix DFLTCC segfault [bsc#1177047] - added patches fix https://git.savannah.gnu.org/cgit/gzip.git/commit/?id=be0a534ba2b6e77da289de8da79e70843b1028cc + gzip-1.10-fix-DFLTCC-segfault.patch OBS-URL: https://build.opensuse.org/request/show/884997 OBS-URL: https://build.opensuse.org/package/show/Base:System/gzip?expand=0&rev=80 --- gzip-1.10-fix-DFLTCC-segfault.patch | 76 +++++++++++++++++++++++++++++ gzip.changes | 8 +++ gzip.spec | 7 ++- 3 files changed, 90 insertions(+), 1 deletion(-) create mode 100644 gzip-1.10-fix-DFLTCC-segfault.patch diff --git a/gzip-1.10-fix-DFLTCC-segfault.patch b/gzip-1.10-fix-DFLTCC-segfault.patch new file mode 100644 index 0000000..988927f --- /dev/null +++ b/gzip-1.10-fix-DFLTCC-segfault.patch @@ -0,0 +1,76 @@ +From be0a534ba2b6e77da289de8da79e70843b1028cc Mon Sep 17 00:00:00 2001 +From: Ilya Leoshkevich +Date: Thu, 24 Sep 2020 00:08:56 +0200 +Subject: Fix DFLTCC segfault when compressing or decompressing two files + +The value in total_in global variable from processing the first file +affected processing of the second file. Fix by making total_in local. +--- + dfltcc.c | 14 ++++++++------ + 1 file changed, 8 insertions(+), 6 deletions(-) + +diff --git a/dfltcc.c b/dfltcc.c +index 86aa56e..3a5b92d 100644 +--- a/dfltcc.c ++++ b/dfltcc.c +@@ -242,10 +242,8 @@ dfltcc_gdht (struct dfltcc_param_v0 *param) + dfltcc (DFLTCC_GDHT, param, NULL, NULL, &next_in, &avail_in, NULL); + } + +-static off_t total_in; +- + static dfltcc_cc +-dfltcc_cmpr_xpnd (struct dfltcc_param_v0 *param, int fn) ++dfltcc_cmpr_xpnd (struct dfltcc_param_v0 *param, int fn, off_t *total_in) + { + uch *next_out = outbuf + outcnt; + size_t avail_out = OUTBUFSIZ - outcnt; +@@ -257,7 +255,7 @@ dfltcc_cmpr_xpnd (struct dfltcc_param_v0 *param, int fn) + window); + off_t consumed_in = next_in - (inbuf + inptr); + inptr += consumed_in; +- total_in += consumed_in; ++ *total_in += consumed_in; + outcnt += ((OUTBUFSIZ - outcnt) - avail_out); + return cc; + } +@@ -349,6 +347,7 @@ dfltcc_deflate (int pack_level) + + union aligned_dfltcc_param_v0 ctx_v0; + struct dfltcc_param_v0 *param = init_param (&ctx_v0); ++ off_t total_in = 0; + + /* Compress ifd into ofd in a loop. */ + while (true) +@@ -398,7 +397,8 @@ dfltcc_deflate (int pack_level) + } + + /* Compress inbuf into outbuf. */ +- while (dfltcc_cmpr_xpnd (param, DFLTCC_CMPR) == DFLTCC_CC_AGAIN) ++ while (dfltcc_cmpr_xpnd (param, DFLTCC_CMPR, &total_in) ++ == DFLTCC_CC_AGAIN) + ; + + /* Unmask the input data. */ +@@ -427,6 +427,7 @@ dfltcc_inflate (void) + + union aligned_dfltcc_param_v0 ctx_v0; + struct dfltcc_param_v0 *param = init_param (&ctx_v0); ++ off_t total_in = 0; + + /* Decompress ifd into ofd in a loop. */ + while (true) +@@ -446,7 +447,8 @@ dfltcc_inflate (void) + + /* Decompress inbuf into outbuf. */ + dfltcc_cc cc; +- while ((cc = dfltcc_cmpr_xpnd (param, DFLTCC_XPND)) == DFLTCC_CC_AGAIN) ++ while ((cc = dfltcc_cmpr_xpnd (param, DFLTCC_XPND, &total_in)) ++ == DFLTCC_CC_AGAIN) + ; + if (cc == DFLTCC_CC_OK) + { +-- +cgit v1.2.1 + + diff --git a/gzip.changes b/gzip.changes index 228d9e0..89c1cb1 100644 --- a/gzip.changes +++ b/gzip.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Tue Apr 13 13:23:44 UTC 2021 - pgajdos@suse.com + +- fix DFLTCC segfault [bsc#1177047] +- added patches + fix https://git.savannah.gnu.org/cgit/gzip.git/commit/?id=be0a534ba2b6e77da289de8da79e70843b1028cc + + gzip-1.10-fix-DFLTCC-segfault.patch + ------------------------------------------------------------------- Thu Mar 4 01:57:35 UTC 2021 - Kristyna Streitova diff --git a/gzip.spec b/gzip.spec index 7c1db07..ce7f1b1 100644 --- a/gzip.spec +++ b/gzip.spec @@ -36,12 +36,14 @@ Patch7: xz_lzma.patch Patch8: manpage-no-date.patch Patch9: gzip-1.10-ibm_dfltcc_support.patch Patch10: gzip-1.10-fix_count_of_lines_to_skip.patch +# https://git.savannah.gnu.org/cgit/gzip.git/commit/?id=be0a534ba2b6e77da289de8da79e70843b1028cc +Patch11: gzip-1.10-fix-DFLTCC-segfault.patch BuildRequires: autoconf BuildRequires: automake BuildRequires: makeinfo BuildRequires: xz Requires(post): %{install_info_prereq} -Requires(preun): %{install_info_prereq} +Requires(preun):%{install_info_prereq} %description Gzip reduces the size of the named files using Lempel-Ziv coding LZ77. @@ -61,6 +63,9 @@ times. %patch9 -p1 %endif %patch10 -p1 +%ifarch s390x +%patch11 -p1 +%endif %build export CFLAGS="%{optflags} -fomit-frame-pointer \