[environment-modules] Add patch to fix segfault from Tcl RexExp handling (bug 834580)
Orion Poplawski
orion at fedoraproject.org
Fri Aug 24 14:31:19 UTC 2012
commit 2ccfc854ef16c06d86f75376ae363a88917f13d9
Author: Orion Poplawski <orion at cora.nwra.com>
Date: Fri Aug 24 08:31:16 2012 -0600
Add patch to fix segfault from Tcl RexExp handling (bug 834580)
environment-modules-regex.patch | 34 ++++++++++++++++++++++++++++++++++
environment-modules.spec | 9 ++++++++-
2 files changed, 42 insertions(+), 1 deletions(-)
---
diff --git a/environment-modules-regex.patch b/environment-modules-regex.patch
new file mode 100644
index 0000000..af2c9aa
--- /dev/null
+++ b/environment-modules-regex.patch
@@ -0,0 +1,34 @@
+diff -ur modules-3.2.9.orig/cmdXResource.c modules-3.2.9/cmdXResource.c
+--- modules-3.2.9.orig/cmdXResource.c 2010-11-11 19:23:18.000000000 +0100
++++ modules-3.2.9/cmdXResource.c 2012-08-24 13:49:48.717499074 +0200
+@@ -446,7 +446,6 @@
+ ** is a constant regexp!
+ **/
+
+- if( !res_exp)
+ res_exp = Tcl_RegExpCompile(interp,
+ "^[ \t]*([^ \t]*)[ \t]*:[ \t]*(.*)[ \t]*$");
+
+diff -ur modules-3.2.9.orig/utility.c modules-3.2.9/utility.c
+--- modules-3.2.9.orig/utility.c 2011-11-28 22:27:13.000000000 +0100
++++ modules-3.2.9/utility.c 2012-08-24 13:50:13.455735765 +0200
+@@ -3061,16 +3061,13 @@
+ tstr = (const char *) TCL_RESULT(interp);
+
+ /* compile regular expression the first time through */
+- if (!exit__expPtr)
+- exit__expPtr = Tcl_RegExpCompile(interp, "^EXIT ([0-9]*)");
++ exit__expPtr = Tcl_RegExpCompile(interp, "^EXIT ([0-9]*)");
+
+ /* result = "invoked \"break\" outside of a loop" */
+- if (!break_expPtr)
+- break_expPtr = Tcl_RegExpCompile(interp, ".*\"break\".*");
++ break_expPtr = Tcl_RegExpCompile(interp, ".*\"break\".*");
+
+ /* result = "invoked \"continue\" outside of a loop" */
+- if (!continue_expPtr)
+- continue_expPtr = Tcl_RegExpCompile(interp, ".*\"continue\".*");
++ continue_expPtr = Tcl_RegExpCompile(interp, ".*\"continue\".*");
+
+ /* intercept any "EXIT N" first */
+ if(tstr && *tstr && 0 < Tcl_RegExpExec(interp, exit__expPtr,
diff --git a/environment-modules.spec b/environment-modules.spec
index b655f0f..8fa085e 100644
--- a/environment-modules.spec
+++ b/environment-modules.spec
@@ -1,6 +1,6 @@
Name: environment-modules
Version: 3.2.9c
-Release: 3%{?dist}
+Release: 4%{?dist}
Summary: Provides dynamic modification of a user's environment
Group: System Environment/Base
@@ -10,6 +10,9 @@ Source0: http://downloads.sourceforge.net/modules/modules-%{version}.tar.
Source1: modules.sh
Source2: createmodule.sh
Patch0: environment-modules-3.2.7-bindir.patch
+# Patch to fix segfault in module unload due to Tcl RegExp handling
+# https://bugzilla.redhat.com/show_bug.cgi?id=834580
+Patch1: environment-modules-regex.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: tcl-devel, tclx-devel, libX11-devel
@@ -46,6 +49,7 @@ have access to the module alias.
%prep
%setup -q -n modules-3.2.9
%patch0 -p1 -b .bindir
+%patch1 -p1 -b .regex
%build
@@ -93,6 +97,9 @@ make test
%changelog
+* Fri Aug 24 2012 Orion Poplawski <orion at cora.nwra.com> - 3.2.9c-4
+- Add patch to fix segfault from Tcl RexExp handling (bug 834580)
+
* Wed Jul 18 2012 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 3.2.9c-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
More information about the scm-commits
mailing list