Date: Wed, 21 Jan 2026 23:56:03 +0000 From: Robert Clausecker <fuz@FreeBSD.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-branches@FreeBSD.org Subject: git: f3c12d4f0f25 - 2026Q1 - archivers/zip: apply Debian patches Message-ID: <69716793.3b85d.1860a2f7@gitrepo.freebsd.org>
index | next in thread | raw e-mail
The branch 2026Q1 has been updated by fuz: URL: https://cgit.FreeBSD.org/ports/commit/?id=f3c12d4f0f258b39a9509c416b19a3873e17c0d8 commit f3c12d4f0f258b39a9509c416b19a3873e17c0d8 Author: Robert Clausecker <fuz@FreeBSD.org> AuthorDate: 2026-01-19 15:02:11 +0000 Commit: Robert Clausecker <fuz@FreeBSD.org> CommitDate: 2026-01-21 23:55:19 +0000 archivers/zip: apply Debian patches These patches fix some security and other issues: - ( 7) zipnote.c: Close in_file instead of undefined file x - ( 8) Use format specifier %s to print strings, not the string itself - (14) Fix buffer overflow when filename contains unicode characters - (15) Fix buffer overflow when using '-T -TT' - (16) Fix symlink update detection Obtained from: https://salsa.debian.org/sanvila/zip Reported by: diizzy Reviewed by: diizzy Security: CVE-2018-13410 MFH: 2026Q1 (cherry picked from commit e0e704bfeaaf5b2f0ac6c66a7a331eab62443d9a) --- archivers/zip/Makefile | 2 +- archivers/zip/files/patch-fileio.c | 19 ++++++++++++++++ archivers/zip/files/patch-unix_unix.c | 15 ++++++++++++ archivers/zip/files/patch-zip.c | 43 +++++++++++++++++++++++++++++++++++ archivers/zip/files/patch-zipnote.c | 16 +++++++++++++ 5 files changed, 94 insertions(+), 1 deletion(-) diff --git a/archivers/zip/Makefile b/archivers/zip/Makefile index 0826bd37bce8..eb392156abf8 100644 --- a/archivers/zip/Makefile +++ b/archivers/zip/Makefile @@ -1,6 +1,6 @@ PORTNAME= zip PORTVERSION= 3.0 -PORTREVISION= 4 +PORTREVISION= 5 CATEGORIES= archivers MASTER_SITES= SF/info${PORTNAME}/Zip%203.x%20%28latest%29/${PORTVERSION} DISTNAME= ${PORTNAME}${PORTVERSION:S/.//g} diff --git a/archivers/zip/files/patch-fileio.c b/archivers/zip/files/patch-fileio.c new file mode 100644 index 000000000000..8cd84ef1b5f9 --- /dev/null +++ b/archivers/zip/files/patch-fileio.c @@ -0,0 +1,19 @@ +From: Shengjing Zhu <shengjing.zhu@canonical.com> +Subject: Fix buffer overflow when filename contains unicode characters +Bug-Debian: https://bugs.debian.org/1077054 +Bug-Debian: https://bugs.debian.org/1093629 +Bug-Ubuntu: https://launchpad.net/bugs/2062535 +Forwarded: https://sourceforge.net/p/infozip/bugs/81/ +Origin: https://src.fedoraproject.org/rpms/zip/raw/f41/f/buffer_overflow.patch + +--- fileio.c.orig 2008-05-29 00:13:24 UTC ++++ fileio.c +@@ -3502,7 +3502,7 @@ zwchar *local_to_wide_string(local_string) + if ((wc_string = (wchar_t *)malloc((wsize + 1) * sizeof(wchar_t))) == NULL) { + ZIPERR(ZE_MEM, "local_to_wide_string"); + } +- wsize = mbstowcs(wc_string, local_string, strlen(local_string) + 1); ++ wsize = mbstowcs(wc_string, local_string, wsize + 1); + wc_string[wsize] = (wchar_t) 0; + + /* in case wchar_t is not zwchar */ diff --git a/archivers/zip/files/patch-unix_unix.c b/archivers/zip/files/patch-unix_unix.c new file mode 100644 index 000000000000..22a92db74d40 --- /dev/null +++ b/archivers/zip/files/patch-unix_unix.c @@ -0,0 +1,15 @@ +From: Marcin Owsiany <marcin@owsiany.pl> +Subject: Fix symlink update detection +Bug-Debian: https://bugs.debian.org/1005943 + +--- unix/unix.c.orig 2008-06-19 04:26:18 UTC ++++ unix/unix.c +@@ -423,7 +423,7 @@ ulg filetime(f, a, n, t) + } + } + if (n != NULL) +- *n = (s.st_mode & S_IFMT) == S_IFREG ? s.st_size : -1L; ++ *n = ((s.st_mode & S_IFMT) == S_IFREG || (s.st_mode & S_IFMT) == S_IFLNK) ? s.st_size : -1L; + if (t != NULL) { + t->atime = s.st_atime; + t->mtime = s.st_mtime; diff --git a/archivers/zip/files/patch-zip.c b/archivers/zip/files/patch-zip.c new file mode 100644 index 000000000000..d81182e3baf1 --- /dev/null +++ b/archivers/zip/files/patch-zip.c @@ -0,0 +1,43 @@ +From: Santiago Vila <sanvila@debian.org> +Subject: Use format specifier %s to print strings, not the string itself +Bug-Debian: https://bugs.debian.org/673476 +X-Debian-version: 3.0-5 + +From: Florent 'Skia' Jacquet <florent.jacquet@canonical.com> +Subject: Fix buffer overflow when using '-T -TT' +Bug-Debian: https://bugs.debian.org/1093629 +Bug-Ubuntu: https://launchpad.net/bugs/2093024 +Forwarded: https://sourceforge.net/p/infozip/bugs/81/ + +strlen(unzip_path) + strlen(zipname) + " " + "'" + "'" + '\0' +The additional space required in the `cmd` buffer is 4, not 3. + +--- zip.c.orig 2008-07-05 16:34:06 UTC ++++ zip.c +@@ -1028,7 +1028,7 @@ local void help_extended() + + for (i = 0; i < sizeof(text)/sizeof(char *); i++) + { +- printf(text[i]); ++ printf("%s", text[i]); + putchar('\n'); + } + #ifdef DOS +@@ -1225,7 +1225,7 @@ local void version_info() + CR_MAJORVER, CR_MINORVER, CR_BETA_VER, CR_VERSION_DATE); + for (i = 0; i < sizeof(cryptnote)/sizeof(char *); i++) + { +- printf(cryptnote[i]); ++ printf("%s", cryptnote[i]); + putchar('\n'); + } + ++i; /* crypt support means there IS at least one compilation option */ +@@ -1437,7 +1437,7 @@ local void check_zipfile(zipname, zippath) + /* Replace first {} with archive name. If no {} append name to string. */ + here = strstr(unzip_path, "{}"); + +- if ((cmd = malloc(strlen(unzip_path) + strlen(zipname) + 3)) == NULL) { ++ if ((cmd = malloc(strlen(unzip_path) + strlen(zipname) + 4)) == NULL) { + ziperr(ZE_MEM, "building command string for testing archive"); + } + diff --git a/archivers/zip/files/patch-zipnote.c b/archivers/zip/files/patch-zipnote.c new file mode 100644 index 000000000000..01b1d97f91f2 --- /dev/null +++ b/archivers/zip/files/patch-zipnote.c @@ -0,0 +1,16 @@ +From: Christian Spieler +Subject: zipnote.c: Close in_file instead of undefined file x +Bug-Debian: https://bugs.debian.org/628594 +X-Debian-version: 3.0-4 + +--- zipnote.c.orig 2008-05-08 08:17:08 UTC ++++ zipnote.c +@@ -661,7 +661,7 @@ char **argv; /* command line tokens */ + if ((r = zipcopy(z)) != ZE_OK) + ziperr(r, "was copying an entry"); + } +- fclose(x); ++ fclose(in_file); + + /* Write central directory and end of central directory with new comments */ + if ((c = zftello(y)) == (zoff_t)-1) /* get start of central */home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69716793.3b85d.1860a2f7>
