Revision
110439
Author
blair@macports.org
Date
2013-08-30 21:19:32 -0700 (Fri, 30 Aug 2013)

Log Message

py-zeroc-ice33: fix segfault in IcePy Communicator on exception.

http://www.zeroc.com/forums/bug-reports/4639-icepy-segfaults-incorrect-router-configuration.html

Modified Paths

Added Paths

Diff

Modified: trunk/dports/python/py-zeroc-ice33/Portfile (110438 => 110439)


--- trunk/dports/python/py-zeroc-ice33/Portfile	2013-08-31 04:12:35 UTC (rev 110438)
+++ trunk/dports/python/py-zeroc-ice33/Portfile	2013-08-31 04:19:32 UTC (rev 110439)
@@ -35,7 +35,8 @@
 dist_subdir     zeroc-ice33
 distname        Ice-${version}
 distfiles       ${distname}${extract.suffix}
-patchfiles      patch-py.config.Make.rules.Darwin.diff \
+patchfiles      patch-py-modules-IcePy-Communicator.cpp.diff \
+                patch-py.config.Make.rules.Darwin.diff \
                 patch-scripts.TestUtil.py.diff
 checksums       Ice-${version}.tar.gz \
                     md5 1f37dfcec4662fcde030553fb447d064 \

Added: trunk/dports/python/py-zeroc-ice33/files/patch-py-modules-IcePy-Communicator.cpp.diff (0 => 110439)


--- trunk/dports/python/py-zeroc-ice33/files/patch-py-modules-IcePy-Communicator.cpp.diff	                        (rev 0)
+++ trunk/dports/python/py-zeroc-ice33/files/patch-py-modules-IcePy-Communicator.cpp.diff	2013-08-31 04:19:32 UTC (rev 110439)
@@ -0,0 +1,31 @@
+From https://github.com/joshmoore/zeroc-ice.git:
+
+The patch has been modified to remove the leading a/ and b/ from the
+paths.
+
+commit d95425c7a81c268f64ac6716ca1f0c23639821e3
+Author: jmoore <josh@glencoesoftware.com>
+Date:   Fri Aug 19 11:48:32 2011 +0200
+
+    Fix segfault in IcePy Communicator on exception
+    
+    http://www.zeroc.com/forums/bug-reports/4639-icepy-segfaults-incorrect-router-configuration.html
+
+diff --git py/modules/IcePy/Communicator.cpp py/modules/IcePy/Communicator.cpp
+index 223cfcd..8a45008 100644
+--- py/modules/IcePy/Communicator.cpp
++++ py/modules/IcePy/Communicator.cpp
+@@ -1003,12 +1003,12 @@ communicatorCreateObjectAdapterWithRouter(CommunicatorObject* self, PyObject* ar
+         return 0;
+     }
+ 
+-    AllowThreads allowThreads; // Release Python's global interpreter lock to avoid a potential deadlock.
+ 
+     assert(self->communicator);
+     Ice::ObjectAdapterPtr adapter;
+     try
+     {
++        AllowThreads allowThreads; // Release Python's global interpreter lock to avoid a potential deadlock.
+         adapter = (*self->communicator)->createObjectAdapterWithRouter(name, router);
+     }
+     catch(const Ice::Exception& ex)