A utility for unpacking zip files
zipinfo prints random garbage (and sometime crashes) when showing the usage: run 1: miscellaneous options: -h print header line -t print totals for listed files or for all -z print zipfile comment -T? print file times in sortable decimal format ?-C be case-insensitive 4l?????```??`???????????????????????????????? run 2: miscellaneous options: -h print header line -t print totals for listed files or for all -z print zipfile comment `-T? print file times in sortable decimal format ?-C? be case-insensitive (null) -x exclude filenames that follow from listing run 3: miscellaneous options: -h print header line -t print totals for listed files or for all -z print zipfile comment ?-T? print file times in sortable decimal format -Cv be case-insensitive 20 April 2009 -x exclude filenames that follow from listing run 4: segmentation fault This happens because four '%c' modifiers are passed to sprintf, without any corresponding argument. This obviously generates a long list of compiler warnings, which are ignored: In file included from unzip.h:720, from unzip.c:68: unzip.c: In function ‘usage’: unzpriv.h:1009:45: warning: format ‘%c’ expects argument of type ‘int’, but argument 3 has type ‘char *’ [-Wformat=] 1009 | # define LoadFarString(x) (char *)(x) | ^ unzpriv.h:2728:61: note: in definition of macro ‘Info’ 2728 | (*G.message)((zvoid *)&G, (uch *)(buf), (ulg)sprintf sprf_arg, (flag)) | ^~~~~~~~ unzip.c:2133:43: note: in expansion of macro ‘LoadFarString’ 2133 | Info(slide, flag, ((char *)slide, LoadFarString(ZipInfoUsageLine3), | ^~~~~~~~~~~~~ unzpriv.h:1009:45: warning: format ‘%c’ expects a matching ‘int’ argument [-Wformat=] 1009 | # define LoadFarString(x) (char *)(x) | ^ unzpriv.h:2728:61: note: in definition of macro ‘Info’ 2728 | (*G.message)((zvoid *)&G, (uch *)(buf), (ulg)sprintf sprf_arg, (flag)) | ^~~~~~~~ unzip.c:2133:43: note: in expansion of macro ‘LoadFarString’ 2133 | Info(slide, flag, ((char *)slide, LoadFarString(ZipInfoUsageLine3), | ^~~~~~~~~~~~~ unzpriv.h:1009:45: warning: format ‘%c’ expects a matching ‘int’ argument [-Wformat=] 1009 | # define LoadFarString(x) (char *)(x) | ^ unzpriv.h:2728:61: note: in definition of macro ‘Info’ 2728 | (*G.message)((zvoid *)&G, (uch *)(buf), (ulg)sprintf sprf_arg, (flag)) | ^~~~~~~~ unzip.c:2133:43: note: in expansion of macro ‘LoadFarString’ 2133 | Info(slide, flag, ((char *)slide, LoadFarString(ZipInfoUsageLine3), | ^~~~~~~~~~~~~ unzpriv.h:1009:45: warning: format ‘%c’ expects a matching ‘int’ argument [-Wformat=] 1009 | # define LoadFarString(x) (char *)(x) | ^ unzpriv.h:2728:61: note: in definition of macro ‘Info’ 2728 | (*G.message)((zvoid *)&G, (uch *)(buf), (ulg)sprintf sprf_arg, (flag)) | ^~~~~~~~ unzip.c:2133:43: note: in expansion of macro ‘LoadFarString’ 2133 | Info(slide, flag, ((char *)slide, LoadFarString(ZipInfoUsageLine3), | ^~~~~~~~~~~~~ unzpriv.h:1009:45: warning: format ‘%s’ expects a matching ‘char *’ argument [-Wformat=] 1009 | # define LoadFarString(x) (char *)(x) | ^ unzpriv.h:2728:61: note: in definition of macro ‘Info’ 2728 | (*G.message)((zvoid *)&G, (uch *)(buf), (ulg)sprintf sprf_arg, (flag)) | ^~~~~~~~ unzip.c:2133:43: note: in expansion of macro ‘LoadFarString’ 2133 | Info(slide, flag, ((char *)slide, LoadFarString(ZipInfoUsageLine3), | ^~~~~~~~~~~~~ Fix this by removing the '%c' modifiers. Resolves: RHEL-60054 Signed-off-by: Matteo Croce <teknoraver@meta.com> |
||
---|---|---|
tests | ||
.gitignore | ||
0001-Fix-CVE-2016-9844-rhbz-1404283.patch | ||
gating.yaml | ||
sources | ||
STAGE1-unzip | ||
unzip-6.0-alt-iconv-utf8-print.patch | ||
unzip-6.0-alt-iconv-utf8.patch | ||
unzip-6.0-attribs-overflow.patch | ||
unzip-6.0-bzip2-configure.patch | ||
unzip-6.0-caseinsensitive.patch | ||
unzip-6.0-close.patch | ||
unzip-6.0-configure.patch | ||
unzip-6.0-COVSCAN-fix-unterminated-string.patch | ||
unzip-6.0-cve-2014-8139.patch | ||
unzip-6.0-cve-2014-8140.patch | ||
unzip-6.0-cve-2014-8141.patch | ||
unzip-6.0-cve-2018-18384.patch | ||
unzip-6.0-cve-2018-1000035-heap-based-overflow.patch | ||
unzip-6.0-exec-shield.patch | ||
unzip-6.0-fix-recmatch.patch | ||
unzip-6.0-fix-warning-messages-on-big-files.patch | ||
unzip-6.0-format-secure.patch | ||
unzip-6.0-heap-overflow-infloop.patch | ||
unzip-6.0-manpage-fix.patch | ||
unzip-6.0-overflow-long-fsize.patch | ||
unzip-6.0-overflow.patch | ||
unzip-6.0-symlink.patch | ||
unzip-6.0-timestamp.patch | ||
unzip-6.0-valgrind.patch | ||
unzip-6.0-x-option.patch | ||
unzip-zipbomb-manpage.patch | ||
unzip-zipbomb-part1.patch | ||
unzip-zipbomb-part2.patch | ||
unzip-zipbomb-part3.patch | ||
unzip-zipbomb-part4.patch | ||
unzip-zipbomb-part5.patch | ||
unzip-zipbomb-part6.patch | ||
unzip-zipbomb-switch.patch | ||
unzip.spec |