From info at egenix.com Wed May 16 10:47:33 2012 From: info at egenix.com (eGenix Team: M.-A. Lemburg) Date: Wed May 16 09:49:43 2012 Subject: [egenix-users] ANN: eGenix pyOpenSSL Distribution 0.13.0-1.0.0j Message-ID: <4FB35B95.4070009@egenix.com> ________________________________________________________________________ ANNOUNCING eGenix.com pyOpenSSL Distribution Version 0.13.0-1.0.0j An easy-to-install and easy-to-use distribution of the pyOpenSSL Python interface for OpenSSL - available for Windows, Mac OS X and Unix platforms This announcement is also available on our web-site for online reading: http://www.egenix.com/company/news/eGenix-pyOpenSSL-Distribution-0.13.0-1.0.0j-1.html ________________________________________________________________________ INTRODUCTION The eGenix.com pyOpenSSL Distribution includes everything you need to get started with SSL in Python. It comes with an easy-to-use installer that includes the most recent OpenSSL library versions in pre-compiled form, making your application independent of OS provided OpenSSL libraries: http://www.egenix.com/products/python/pyOpenSSL/ pyOpenSSL is an open-source Python add-on that allows writing SSL/TLS- aware network applications as well as certificate management tools: https://launchpad.net/pyopenssl/ OpenSSL is an open-source implementation of the SSL/TLS protocol: http://www.openssl.org/ ________________________________________________________________________ NEWS This new release of the eGenix.com pyOpenSSL Distribution updates the included included OpenSSL version to 1.0.0g. New features in OpenSSL 1.0.0j since 1.0.0g ------------------------------------------- OpenSSL 1.0.0j fixes several vulnerabilities relative to 1.0.0g: http://openssl.org/news/vulnerabilities.html and includes a number of stability enhancements as well as extra protection against attacks: http://openssl.org/news/changelog.html New features in the eGenix pyOpenSSL Distribution ------------------------------------------------- * Fixed a compatibility problem with Python 2.7's distutils that was introduced in Python 2.7.3 As always, we provide binaries that include both pyOpenSSL and the necessary OpenSSL libraries for all supported platforms: Windows x86 and x64, Linux x86 and x64, Mac OS X PPC, x86 and x64. We've also added egg-file distribution versions of our eGenix.com pyOpenSSL Distribution for Windows, Linux and Mac OS X to the available download options. These make setups using e.g. zc.buildout and other egg-file based installers a lot easier. ________________________________________________________________________ DOWNLOADS The download archives and instructions for installing the package can be found at: http://www.egenix.com/products/python/pyOpenSSL/ ________________________________________________________________________ UPGRADING Before installing this version of pyOpenSSL, please make sure that you uninstall any previously installed pyOpenSSL version. Otherwise, you could end up not using the included OpenSSL libs. _______________________________________________________________________ SUPPORT Commercial support for these packages is available from eGenix.com. Please see http://www.egenix.com/services/support/ for details about our support offerings. ________________________________________________________________________ MORE INFORMATION For more information about the eGenix pyOpenSSL Distributon, licensing and download instructions, please visit our web-site or write to sales@egenix.com. Enjoy, -- Marc-Andre Lemburg eGenix.com Professional Python Services directly from the Source (#1, May 16 2012) >>> Python/Zope Consulting and Support ... http://www.egenix.com/ >>> mxODBC.Zope.Database.Adapter ... http://zope.egenix.com/ >>> mxODBC, mxDateTime, mxTextTools ... http://python.egenix.com/ ________________________________________________________________________ 2012-07-02: EuroPython 2012, Florence, Italy 47 days to go 2012-04-26: Released mxODBC 3.1.2 http://egenix.com/go28 2012-04-25: Released eGenix mx Base 3.2.4 http://egenix.com/go27 ::: Try our new mxODBC.Connect Python Database Interface for free ! :::: eGenix.com Software, Skills and Services GmbH Pastor-Loeh-Str.48 D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg Registered at Amtsgericht Duesseldorf: HRB 46611 http://www.egenix.com/company/contact/ From dickie.moseley at virgin.net Thu May 17 11:12:10 2012 From: dickie.moseley at virgin.net (RICHARD MOSELEY) Date: Thu May 17 11:12:18 2012 Subject: [egenix-users] SIGSEGV in mxTextTools when using AppendToTagobj Message-ID: I have just been spending time compiling the mxTextTools library into the latest version of the SimpleParse package in a python 2.7.3 virtualenv. The original packaged mxTextTools was 2.1.0 from 2003, so I decided to use the latest 3.2.4 package instead; after making all the appropriate changes and compiling, I then ran the test suite that is in the SimpleParse package, after running a few of the test the program failed with a SIGSEGV. I tracked down the problem test to the testAppendToTagobj1 test in the mx_flag.py suite of tests and more specifically the testAppendToTagobj1 test, I took the test out of the test suite and created a simple test file as follows: from simpleparse.stt.TextTools import * class Test(object): worked = "" def append(self, value): worked = value tagobj = Test() result = tag('abbaabccd',((tagobj,AllIn+AppendToTagobj,'ab',0),),0) print result When this is run from within the virtualenv I got the following error: (oratools)rmos@spot$ python /tmp/chktext.py Fatal Python error: stt/TextTools/mxTextTools/mxte_impl.h:1301 object at 0x242f5b0 has negative ref count -1 Reviewing the code around the stated line 1301 in mxte_impl.h gives the following code within the TE_HANDLE_MATCH function: if (flags & MATCH_APPENDTAG) { ... if (PyList_Check(tagobj)) { if (PyList_Append(tagobj, w)) { Py_DECREF(w); goto onError; } } else { PyObject *result; result = PyEval_CallMethod(tagobj, "append", "(O)", w); Py_DECREF(w); if (result == NULL) goto onError; Py_DECREF(result); } Py_DECREF(w); <-- INCORRECT return 0; } ... The problem with the code is that in the case of the tag object not beign a list the temporary 'w' object is DECREF'ed twice if the append is successful. I commented out the extra call of Py_DECREF(w) and reran the test script, and it returned: (oratools)rmos@spot2: python /tmp/chktext.py (1, [], 6) which is what is by the original test. I though that I should share this with you, in the hope that this will remove at least one cause of SIGSEGV in the mxTextTools package. Richard Moseley -------------- next part -------------- An HTML attachment was scrubbed... URL: /mailman-archives/egenix-users/attachments/20120517/7b339b1a/attachment.htm From mal at egenix.com Thu May 17 13:55:27 2012 From: mal at egenix.com (M.-A. Lemburg) Date: Thu May 17 12:55:39 2012 Subject: [egenix-users] SIGSEGV in mxTextTools when using AppendToTagobj In-Reply-To: References: Message-ID: <4FB4D91F.4040200@egenix.com> RICHARD MOSELEY wrote: > I have just been spending time compiling the mxTextTools library into the > latest version of the SimpleParse package in a python 2.7.3 virtualenv. The > original packaged mxTextTools was 2.1.0 from 2003, so I decided to use the > latest 3.2.4 package instead; after making all the appropriate changes and > compiling, I then ran the test suite that is in the SimpleParse package, > after running a few of the test the program failed with a SIGSEGV. > > I tracked down the problem test to the testAppendToTagobj1 test in the > mx_flag.py suite of tests and more specifically the testAppendToTagobj1 > test, I took the test out of the test suite and created a simple test file > as follows: > > from simpleparse.stt.TextTools import * > class Test(object): > worked = "" > def append(self, value): > worked = value > tagobj = Test() > result = tag('abbaabccd',((tagobj,AllIn+AppendToTagobj,'ab',0),),0) > print result > > When this is run from within the virtualenv I got the following error: > > (oratools)rmos@spot$ python /tmp/chktext.py > Fatal Python error: stt/TextTools/mxTextTools/mxte_impl.h:1301 object at > 0x242f5b0 has negative ref count -1 > > Reviewing the code around the stated line 1301 in mxte_impl.h gives the > following code within the TE_HANDLE_MATCH function: > > if (flags & MATCH_APPENDTAG) { > ... > if (PyList_Check(tagobj)) { > if (PyList_Append(tagobj, w)) { > Py_DECREF(w); > goto onError; > } > } > else { > PyObject *result; > result = PyEval_CallMethod(tagobj, "append", "(O)", w); > Py_DECREF(w); > if (result == NULL) > goto onError; > Py_DECREF(result); > } > Py_DECREF(w); <-- INCORRECT > return 0; > } > ... > The problem with the code is that in the case of the tag object not beign a > list the temporary 'w' object is DECREF'ed twice if the append is > successful. > > I commented out the extra call of Py_DECREF(w) and reran the test script, > and it returned: > > (oratools)rmos@spot2: python /tmp/chktext.py > (1, [], 6) > > which is what is by the original test. > > I though that I should share this with you, in the hope that this will > remove at least one cause of SIGSEGV in the mxTextTools package. Thank you very much for the comprehensive bug report and excellent analysis. We will fix this problem in the next patch level release of eGenix mx Base. -- Marc-Andre Lemburg eGenix.com Professional Python Services directly from the Source (#1, May 17 2012) >>> Python/Zope Consulting and Support ... http://www.egenix.com/ >>> mxODBC.Zope.Database.Adapter ... http://zope.egenix.com/ >>> mxODBC, mxDateTime, mxTextTools ... http://python.egenix.com/ ________________________________________________________________________ 2012-07-02: EuroPython 2012, Florence, Italy 46 days to go 2012-05-16: Released eGenix pyOpenSSL 0.13 http://egenix.com/go29 2012-04-26: Released mxODBC 3.1.2 http://egenix.com/go28 2012-04-25: Released eGenix mx Base 3.2.4 http://egenix.com/go27 ::: Try our new mxODBC.Connect Python Database Interface for free ! :::: eGenix.com Software, Skills and Services GmbH Pastor-Loeh-Str.48 D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg Registered at Amtsgericht Duesseldorf: HRB 46611 http://www.egenix.com/company/contact/