summaryrefslogtreecommitdiff
path: root/lang/tcl
diff options
context:
space:
mode:
authorcheusov <cheusov@pkgsrc.org>2011-08-16 10:18:58 +0000
committercheusov <cheusov@pkgsrc.org>2011-08-16 10:18:58 +0000
commitb92c60c379b99632f08a12b5f1ea881293a8aa59 (patch)
tree08da607cb5288dda0dc9d58ad12437e63e6a07ca /lang/tcl
parent5beaa9a4c75715bdb62b29b40eac2dde67ca6700 (diff)
downloadpkgsrc-b92c60c379b99632f08a12b5f1ea881293a8aa59.tar.gz
Fix for buffer overflow and segfault on some Linux system
(PR 45244 by Michael Droettboom) Fix for build failure on NetBSD (missing --tags in libtool invocation)
Diffstat (limited to 'lang/tcl')
-rw-r--r--lang/tcl/Makefile3
-rw-r--r--lang/tcl/distinfo7
-rw-r--r--lang/tcl/patches/patch-aa10
-rw-r--r--lang/tcl/patches/patch-ad6
-rw-r--r--lang/tcl/patches/patch-generic_tclCmdMZ.c32
5 files changed, 46 insertions, 12 deletions
diff --git a/lang/tcl/Makefile b/lang/tcl/Makefile
index 95437fa2f19..5123674854f 100644
--- a/lang/tcl/Makefile
+++ b/lang/tcl/Makefile
@@ -1,7 +1,8 @@
-# $NetBSD: Makefile,v 1.65 2009/09/12 17:57:40 snj Exp $
+# $NetBSD: Makefile,v 1.66 2011/08/16 10:18:58 cheusov Exp $
DISTNAME= tcl${TCL_VERSION}-src
PKGNAME= tcl-${TCL_VERSION}
+PKGREVISION= 1
CATEGORIES= lang
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=tcl/}
diff --git a/lang/tcl/distinfo b/lang/tcl/distinfo
index d4a17aa6c9f..f9eef79b03e 100644
--- a/lang/tcl/distinfo
+++ b/lang/tcl/distinfo
@@ -1,15 +1,16 @@
-$NetBSD: distinfo,v 1.42 2008/04/07 15:16:40 bjs Exp $
+$NetBSD: distinfo,v 1.43 2011/08/16 10:18:58 cheusov Exp $
SHA1 (tcl8.4.18-src.tar.gz) = 83b04c3ad092c22507869dec3a5c7ba821f109b0
RMD160 (tcl8.4.18-src.tar.gz) = 735a9cc0575585de70cbd3cb2ff5c97d46c1dfbd
Size (tcl8.4.18-src.tar.gz) = 3653369 bytes
-SHA1 (patch-aa) = 7c04a2b24b1a6940b6dff03d9f1781e0326366b3
+SHA1 (patch-aa) = 8db3024597007f861c64e4c933bed3012c27832f
SHA1 (patch-ab) = b18a9b49b54cad9512b9ab2d8f7937e4c7a4fbb4
SHA1 (patch-ac) = 3139a65c6647d806fc69765bc62aa715b49f4d41
-SHA1 (patch-ad) = 05a945172651513e178c6f49672bb18d8c4ad3e7
+SHA1 (patch-ad) = 277cf39e47affa2c2913e47a7d4e87468c5e21bb
SHA1 (patch-ae) = 7694081556a6b004db47ae54775bea0f659b8805
SHA1 (patch-af) = c31ef207e26c8445f2503817c6a8b49b7593ae8f
SHA1 (patch-ag) = fe371866b438063515bad6d145287455c4636824
SHA1 (patch-ah) = b6a68a26ed018f424e9e41bcf6f8da1517bd599a
SHA1 (patch-ai) = b0f7818adedd53a123c6ab809bbec28924b3f07b
SHA1 (patch-aj) = 74d5d7f0d47f39241068c98a316104da94f1cdb9
+SHA1 (patch-generic_tclCmdMZ.c) = 7779f4e1e8696774821c59d51e2afa32fad821d8
diff --git a/lang/tcl/patches/patch-aa b/lang/tcl/patches/patch-aa
index d4458f75334..561f3bb850d 100644
--- a/lang/tcl/patches/patch-aa
+++ b/lang/tcl/patches/patch-aa
@@ -1,6 +1,6 @@
-$NetBSD: patch-aa,v 1.18 2007/10/13 11:41:44 adam Exp $
+$NetBSD: patch-aa,v 1.19 2011/08/16 10:18:58 cheusov Exp $
---- unix/Makefile.in.orig 2007-09-21 19:07:02.000000000 +0200
+--- unix/Makefile.in.orig 2008-02-06 15:38:26.000000000 +0000
+++ unix/Makefile.in
@@ -185,8 +185,8 @@ SHELL = /bin/sh
INSTALL_STRIP_PROGRAM = -s
@@ -18,7 +18,7 @@ $NetBSD: patch-aa,v 1.18 2007/10/13 11:41:44 adam Exp $
STLIB_LD = @STLIB_LD@
-SHLIB_LD = @SHLIB_LD@
-+SHLIB_LD = ${LIBTOOL} --mode=link @CC@ -rpath ${PREFIX}/lib
++SHLIB_LD = ${LIBTOOL} --tag CC --mode=link @CC@ -rpath ${PREFIX}/lib
SHLIB_CFLAGS = @SHLIB_CFLAGS@
SHLIB_LD_LIBS = @SHLIB_LD_LIBS@
TCL_SHLIB_LD_EXTRAS = @TCL_SHLIB_LD_EXTRAS@
@@ -36,8 +36,8 @@ $NetBSD: patch-aa,v 1.18 2007/10/13 11:41:44 adam Exp $
-CC = @CC@
#CC = purify -best-effort @CC@ -DPURIFY
-+CC = ${LIBTOOL} --mode=compile @CC@
-+LD = ${LIBTOOL} --mode=link @CC@
++CC = ${LIBTOOL} --tag CC --mode=compile @CC@
++LD = ${LIBTOOL} --tag CC --mode=link @CC@
# Flags to be passed to installManPage to control whether the manpages
# should be compressed and linked with softlinks
diff --git a/lang/tcl/patches/patch-ad b/lang/tcl/patches/patch-ad
index 208099832f7..9a1eea56d36 100644
--- a/lang/tcl/patches/patch-ad
+++ b/lang/tcl/patches/patch-ad
@@ -1,4 +1,4 @@
-$NetBSD: patch-ad,v 1.4 2006/01/16 14:47:35 adam Exp $
+$NetBSD: patch-ad,v 1.5 2011/08/16 10:18:58 cheusov Exp $
--- unix/dltest/Makefile.in.orig 2004-09-23 20:04:07.000000000 +0000
+++ unix/dltest/Makefile.in
@@ -6,12 +6,12 @@ $NetBSD: patch-ad,v 1.4 2006/01/16 14:47:35 adam Exp $
TCL_DBGX = @TCL_DBGX@
-CC = @CC@
-+CC = ${LIBTOOL} --mode=compile @CC@
++CC = ${LIBTOOL} --tag CC --mode=compile @CC@
LIBS = @TCL_BUILD_STUB_LIB_SPEC@ @DL_LIBS@ @LIBS@ @MATH_LIBS@
AC_FLAGS = @DEFS@
SHLIB_CFLAGS = @SHLIB_CFLAGS@
-SHLIB_LD = @SHLIB_LD@
-+SHLIB_LD = ${LIBTOOL} --mode=link cc -module -pipe -rpath ${PREFIX}/lib
++SHLIB_LD = ${LIBTOOL} --tag CC --mode=link cc -module -pipe -rpath ${PREFIX}/lib
SHLIB_LD_LIBS = @SHLIB_LD_LIBS@
-SHLIB_SUFFIX = @SHLIB_SUFFIX@
+SHLIB_SUFFIX = .la
diff --git a/lang/tcl/patches/patch-generic_tclCmdMZ.c b/lang/tcl/patches/patch-generic_tclCmdMZ.c
new file mode 100644
index 00000000000..46f2e48347f
--- /dev/null
+++ b/lang/tcl/patches/patch-generic_tclCmdMZ.c
@@ -0,0 +1,32 @@
+$NetBSD: patch-generic_tclCmdMZ.c,v 1.1 2011/08/16 10:18:58 cheusov Exp $
+
+PR 45244
+--- generic/tclCmdMZ.c.orig 2007-06-27 17:29:22.000000000 +0000
++++ generic/tclCmdMZ.c
+@@ -3340,7 +3340,7 @@ TclTraceExecutionObjCmd(interp, optionIn
+ flags |= (TCL_TRACE_ENTER_EXEC |
+ TCL_TRACE_LEAVE_EXEC);
+ }
+- strcpy(tcmdPtr->command, command);
++ memcpy(tcmdPtr->command, command, length + 1);
+ name = Tcl_GetString(objv[3]);
+ if (Tcl_TraceCommand(interp, name, flags, TraceCommandProc,
+ (ClientData) tcmdPtr) != TCL_OK) {
+@@ -3572,7 +3572,7 @@ TclTraceCommandObjCmd(interp, optionInde
+ tcmdPtr->length = length;
+ tcmdPtr->refCount = 1;
+ flags |= TCL_TRACE_DELETE;
+- strcpy(tcmdPtr->command, command);
++ memcpy(tcmdPtr->command, command, length + 1);
+ name = Tcl_GetString(objv[3]);
+ if (Tcl_TraceCommand(interp, name, flags, TraceCommandProc,
+ (ClientData) tcmdPtr) != TCL_OK) {
+@@ -3791,7 +3791,7 @@ TclTraceVariableObjCmd(interp, optionInd
+ }
+ tvarPtr->length = length;
+ flags |= TCL_TRACE_UNSETS | TCL_TRACE_RESULT_OBJECT;
+- strcpy(tvarPtr->command, command);
++ memcpy(tvarPtr->command, command, length + 1);
+ name = Tcl_GetString(objv[3]);
+ flagMask = TCL_GLOBAL_ONLY | TCL_NAMESPACE_ONLY;
+ varPtr = TclLookupVar(interp, name, NULL,