summaryrefslogtreecommitdiff
path: root/lang/gcc34
diff options
context:
space:
mode:
authortez <tez@pkgsrc.org>2010-05-04 20:46:31 +0000
committertez <tez@pkgsrc.org>2010-05-04 20:46:31 +0000
commit2069386669b958c2817a85850b18657a439dea16 (patch)
tree320074c63286c86e1c00c00d788eb755c053b82f /lang/gcc34
parent4b95cd0635cb6fc2f517fdd9e775cb2791d30ae2 (diff)
downloadpkgsrc-2069386669b958c2817a85850b18657a439dea16.tar.gz
Add patch to embedded libltdl for CVE-2009-3736 from:
http://lists.gnu.org/archive/html/libtool/2009-11/msg00065.html
Diffstat (limited to 'lang/gcc34')
-rw-r--r--lang/gcc34/Makefile4
-rw-r--r--lang/gcc34/distinfo3
-rw-r--r--lang/gcc34/patches/patch-cd93
3 files changed, 97 insertions, 3 deletions
diff --git a/lang/gcc34/Makefile b/lang/gcc34/Makefile
index 2057d5b9864..5b6599220e3 100644
--- a/lang/gcc34/Makefile
+++ b/lang/gcc34/Makefile
@@ -1,9 +1,9 @@
-# $NetBSD: Makefile,v 1.44 2010/03/24 19:43:25 asau Exp $
+# $NetBSD: Makefile,v 1.45 2010/05/04 20:46:31 tez Exp $
#
DISTNAME= gcc-${GCC_VERSION}
PKGNAME= gcc34-${GCC_VERSION}
-PKGREVISION= 2
+PKGREVISION= 3
CATEGORIES= lang
MASTER_SITES= ${MASTER_SITE_GNU:=gcc/gcc-${GCC_VERSION}/}
EXTRACT_SUFX= .tar.bz2
diff --git a/lang/gcc34/distinfo b/lang/gcc34/distinfo
index 3662b2967ce..176e490ec49 100644
--- a/lang/gcc34/distinfo
+++ b/lang/gcc34/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.19 2009/04/22 18:59:54 hasso Exp $
+$NetBSD: distinfo,v 1.20 2010/05/04 20:46:31 tez Exp $
SHA1 (gcc-3.4.6.tar.bz2) = 97b290fdc572c8e490b3b39f243e69bacad23c2b
RMD160 (gcc-3.4.6.tar.bz2) = b15003368cedc7964f6ceaee0c39ddc43a46c442
@@ -19,3 +19,4 @@ SHA1 (patch-ba) = 6fc03fc155f630329f7dc831eece6b6464b453a6
SHA1 (patch-bb) = aa088194fb073fcde8d2f558ed55ec36106d60d0
SHA1 (patch-ca) = e04ff912406505abd015789f288ef09a7e1ae386
SHA1 (patch-cc) = 0af9845a62f9a6f8ec27657d0ae0c16394e9fc12
+SHA1 (patch-cd) = a22078951e1369900fcb58a281c75b3a86edd3ea
diff --git a/lang/gcc34/patches/patch-cd b/lang/gcc34/patches/patch-cd
new file mode 100644
index 00000000000..f3e0517012d
--- /dev/null
+++ b/lang/gcc34/patches/patch-cd
@@ -0,0 +1,93 @@
+$NetBSD: patch-cd,v 1.1 2010/05/04 20:46:31 tez Exp $
+CVE-2009-3736 fix for embedded libltdl
+
+--- libjava/libltdl/ltdl.c.orig 2010-04-30 10:49:19.822297200 -0500
++++ libjava/libltdl/ltdl.c 2010-04-30 10:49:34.600872700 -0500
+@@ -2159,7 +2159,8 @@
+ static int try_dlopen LT_PARAMS((lt_dlhandle *handle,
+ const char *filename));
+ static int tryall_dlopen LT_PARAMS((lt_dlhandle *handle,
+- const char *filename));
++ const char *filename,
++ const char * useloader));
+ static int unload_deplibs LT_PARAMS((lt_dlhandle handle));
+ static int lt_argz_insert LT_PARAMS((char **pargz,
+ size_t *pargz_len,
+@@ -2345,9 +2346,10 @@
+ }
+
+ static int
+-tryall_dlopen (handle, filename)
++tryall_dlopen (handle, filename, useloader)
+ lt_dlhandle *handle;
+ const char *filename;
++ const char *useloader;
+ {
+ lt_dlhandle cur;
+ lt_dlloader *loader;
+@@ -2414,6 +2416,11 @@
+
+ while (loader)
+ {
++ if (useloader && strcmp(loader->loader_name, useloader))
++ {
++ loader = loader->next;
++ continue;
++ }
+ lt_user_data data = loader->dlloader_data;
+
+ cur->module = loader->module_open (data, filename);
+@@ -2483,7 +2490,7 @@
+ error += tryall_dlopen_module (handle,
+ (const char *) 0, prefix, filename);
+ }
+- else if (tryall_dlopen (handle, filename) != 0)
++ else if (tryall_dlopen (handle, filename, NULL) != 0)
+ {
+ ++error;
+ }
+@@ -2504,7 +2511,7 @@
+ /* Try to open the old library first; if it was dlpreopened,
+ we want the preopened version of it, even if a dlopenable
+ module is available. */
+- if (old_name && tryall_dlopen (handle, old_name) == 0)
++ if (old_name && tryall_dlopen (handle, old_name, "dlpreload") == 0)
+ {
+ return 0;
+ }
+@@ -2768,7 +2775,7 @@
+
+ /* Try to dlopen the file, but do not continue searching in any
+ case. */
+- if (tryall_dlopen (handle, filename) != 0)
++ if (tryall_dlopen (handle, filename,NULL) != 0)
+ *handle = 0;
+
+ return 1;
+@@ -3053,7 +3060,7 @@
+ /* lt_dlclose()ing yourself is very bad! Disallow it. */
+ LT_DLSET_FLAG (*phandle, LT_DLRESIDENT_FLAG);
+
+- if (tryall_dlopen (&newhandle, 0) != 0)
++ if (tryall_dlopen (&newhandle, 0, NULL) != 0)
+ {
+ LT_DLFREE (*phandle);
+ return 1;
+@@ -3175,7 +3182,7 @@
+ }
+ #endif
+ }
+- if (!file)
++ else
+ {
+ file = fopen (filename, LT_READTEXT_MODE);
+ }
+@@ -3359,7 +3366,7 @@
+ #endif
+ )))
+ {
+- if (tryall_dlopen (&newhandle, filename) != 0)
++ if (tryall_dlopen (&newhandle, filename, NULL) != 0)
+ {
+ newhandle = NULL;
+ }