aboutsummaryrefslogtreecommitdiffstats
path: root/lang/perl5.8
diff options
context:
space:
mode:
authortobez <tobez@FreeBSD.org>2005-02-02 23:58:07 +0800
committertobez <tobez@FreeBSD.org>2005-02-02 23:58:07 +0800
commit6ab37c953ccf58aa34b9711eb20ad9eb8c42ba31 (patch)
tree5153d6021e8925d28fe90b3640ff3994e7c3e92f /lang/perl5.8
parente7f59363952e65a6c4c5f1c3716e1789fccdf11b (diff)
downloadfreebsd-ports-gnome-6ab37c953ccf58aa34b9711eb20ad9eb8c42ba31.tar.gz
freebsd-ports-gnome-6ab37c953ccf58aa34b9711eb20ad9eb8c42ba31.tar.zst
freebsd-ports-gnome-6ab37c953ccf58aa34b9711eb20ad9eb8c42ba31.zip
Fix vulnerability in suidperl/sperl [CAN-2005-0155].
Fix buffer overflow in perl [CAN-2005-0156]. Bump PORTREVISION. Upgrade from previous versions/revisions of lang/perl5.8 is recommended. Submitted by: Nicholas Clark <nick $at$ ccl4 org>
Diffstat (limited to 'lang/perl5.8')
-rw-r--r--lang/perl5.8/Makefile2
-rw-r--r--lang/perl5.8/files/patch-patchlevel.h13
-rw-r--r--lang/perl5.8/files/patch-perlio.c22
3 files changed, 36 insertions, 1 deletions
diff --git a/lang/perl5.8/Makefile b/lang/perl5.8/Makefile
index 4b23c9f21a6f..ba5fd45a0754 100644
--- a/lang/perl5.8/Makefile
+++ b/lang/perl5.8/Makefile
@@ -7,7 +7,7 @@
PORTNAME= perl
PORTVERSION= ${PERL_VER}
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= lang devel perl5
MASTER_SITES= ${MASTER_SITE_PERL_CPAN} \
${MASTER_SITE_LOCAL:S/$/:local/} \
diff --git a/lang/perl5.8/files/patch-patchlevel.h b/lang/perl5.8/files/patch-patchlevel.h
new file mode 100644
index 000000000000..c24961cf5dbc
--- /dev/null
+++ b/lang/perl5.8/files/patch-patchlevel.h
@@ -0,0 +1,13 @@
+$FreeBSD$
+
+--- patchlevel.h.orig Wed Feb 2 16:45:30 2005
++++ patchlevel.h Wed Feb 2 16:45:34 2005
+@@ -120,6 +120,8 @@ hunk.
+ #if !defined(PERL_PATCHLEVEL_H_IMPLICIT) && !defined(LOCAL_PATCH_COUNT)
+ static char *local_patches[] = {
+ NULL
++ ,"SUIDPERLIO0 - fix PERLIO_DEBUG local root exploit (CAN-2005-0155)"
++ ,"SUIDPERLIO1 - fix PERLIO_DEBUG buffer overflow (CAN-2005-0156)"
+ ,NULL
+ };
+
diff --git a/lang/perl5.8/files/patch-perlio.c b/lang/perl5.8/files/patch-perlio.c
new file mode 100644
index 000000000000..c680381d2123
--- /dev/null
+++ b/lang/perl5.8/files/patch-perlio.c
@@ -0,0 +1,22 @@
+$FreeBSD$
+
+--- perlio.c.orig Wed Feb 2 16:45:24 2005
++++ perlio.c Wed Feb 2 16:45:34 2005
+@@ -454,7 +454,7 @@ PerlIO_debug(const char *fmt, ...)
+ va_list ap;
+ dSYS;
+ va_start(ap, fmt);
+- if (!dbg) {
++ if (!dbg && !PL_tainting && PL_uid == PL_euid && PL_gid == PL_egid) {
+ char *s = PerlEnv_getenv("PERLIO_DEBUG");
+ if (s && *s)
+ dbg = PerlLIO_open3(s, O_WRONLY | O_CREAT | O_APPEND, 0666);
+@@ -471,7 +471,7 @@ PerlIO_debug(const char *fmt, ...)
+ s = CopFILE(PL_curcop);
+ if (!s)
+ s = "(none)";
+- sprintf(buffer, "%s:%" IVdf " ", s, (IV) CopLINE(PL_curcop));
++ sprintf(buffer, "%.40s:%" IVdf " ", s, (IV) CopLINE(PL_curcop));
+ len = strlen(buffer);
+ vsprintf(buffer+len, fmt, ap);
+ PerlLIO_write(dbg, buffer, strlen(buffer));