aboutsummaryrefslogtreecommitdiff
path: root/archivers/unzip
diff options
context:
space:
mode:
authorAndrey A. Chernov <ache@FreeBSD.org>2005-09-09 18:33:17 +0000
committerAndrey A. Chernov <ache@FreeBSD.org>2005-09-09 18:33:17 +0000
commitc0f88731fd0ad320441f6ffb630c72fc31c7223b (patch)
treee94abc97a5d2fe089954081643c48a893f21e455 /archivers/unzip
parent975f5a1beb41195fe0ca3208ee7cf5ac09aa84b4 (diff)
downloadports-c0f88731fd0ad320441f6ffb630c72fc31c7223b.tar.gz
ports-c0f88731fd0ad320441f6ffb630c72fc31c7223b.zip
unzip TOCTOU file-permissions vulnerability
(submitted patch slightly modified) PR: 85920 Submitted by: Marcus Alves Grando <marcus@corp.grupos.com.br>
Notes
Notes: svn path=/head/; revision=142310
Diffstat (limited to 'archivers/unzip')
-rw-r--r--archivers/unzip/Makefile2
-rw-r--r--archivers/unzip/files/patch-unix_unix.c36
2 files changed, 37 insertions, 1 deletions
diff --git a/archivers/unzip/Makefile b/archivers/unzip/Makefile
index 6930cab4c95f..24adf86c8b0a 100644
--- a/archivers/unzip/Makefile
+++ b/archivers/unzip/Makefile
@@ -7,7 +7,7 @@
PORTNAME= unzip
PORTVERSION= 5.52
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES?= archivers
MASTER_SITES= ftp://ftp.info-zip.org/pub/infozip/src/ \
${MASTER_SITE_TEX_CTAN:S,%SUBDIR%,tools/zip/info-zip/src/,}
diff --git a/archivers/unzip/files/patch-unix_unix.c b/archivers/unzip/files/patch-unix_unix.c
new file mode 100644
index 000000000000..97d346bd953b
--- /dev/null
+++ b/archivers/unzip/files/patch-unix_unix.c
@@ -0,0 +1,36 @@
+--- unix/unix.c.orig Sat Feb 26 16:43:42 2005
++++ unix/unix.c Fri Sep 9 14:36:35 2005
+@@ -1042,6 +1042,16 @@
+ ush z_uidgid[2];
+ int have_uidgid_flg;
+
++/*---------------------------------------------------------------------------
++ Change the file permissions from default ones to those stored in the
++ zipfile.
++ ---------------------------------------------------------------------------*/
++
++#ifndef NO_CHMOD
++ if (fchmod(fileno(G.outfile), filtattr(__G__ G.pInfo->file_attr)))
++ perror("fchmod (file attributes) error");
++#endif
++
+ fclose(G.outfile);
+
+ /*---------------------------------------------------------------------------
+@@ -1150,16 +1160,6 @@
+ " (warning) cannot set times"));
+ #endif /* ?AOS_VS */
+ }
+-
+-/*---------------------------------------------------------------------------
+- Change the file permissions from default ones to those stored in the
+- zipfile.
+- ---------------------------------------------------------------------------*/
+-
+-#ifndef NO_CHMOD
+- if (chmod(G.filename, filtattr(__G__ G.pInfo->file_attr)))
+- perror("chmod (file attributes) error");
+-#endif
+
+ } /* end function close_outfile() */
+