[Python-checkins] cpython (merge 3.2 -> default): MERGE: Closes #15793: Stack corruption in ssl.RAND_egd()

jesus.cea python-checkins at python.org
Tue Sep 11 02:24:03 CEST 2012


http://hg.python.org/cpython/rev/7619a400d318
changeset:   78984:7619a400d318
parent:      78981:306b2ecb1a3e
parent:      78983:827bb0554f1f
user:        Jesus Cea <jcea at jcea.es>
date:        Tue Sep 11 02:08:48 2012 +0200
summary:
  MERGE: Closes #15793: Stack corruption in ssl.RAND_egd()

files:
  Lib/test/test_ssl.py |  8 ++------
  Misc/NEWS            |  3 +++
  Modules/_ssl.c       |  2 +-
  3 files changed, 6 insertions(+), 7 deletions(-)


diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py
--- a/Lib/test/test_ssl.py
+++ b/Lib/test/test_ssl.py
@@ -125,12 +125,8 @@
         else:
             self.assertRaises(ssl.SSLError, ssl.RAND_bytes, 16)
 
-        try:
-            ssl.RAND_egd(1)
-        except TypeError:
-            pass
-        else:
-            print("didn't raise TypeError")
+        self.assertRaises(TypeError, ssl.RAND_egd, 1)
+        self.assertRaises(TypeError, ssl.RAND_egd, 'foo', 1)
         ssl.RAND_add("this is a random string", 75.0)
 
     def test_parse_cert(self):
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -210,6 +210,9 @@
 
 - Issue #13579: string.Formatter now understands the 'a' conversion specifier.
 
+- Issue #15793: Stack corruption in ssl.RAND_egd().
+  Patch by Serhiy Storchaka.
+
 - Issue #15595: Fix subprocess.Popen(universal_newlines=True)
   for certain locales (utf-16 and utf-32 family). Patch by Chris Jerdonek.
 
diff --git a/Modules/_ssl.c b/Modules/_ssl.c
--- a/Modules/_ssl.c
+++ b/Modules/_ssl.c
@@ -2481,7 +2481,7 @@
     PyObject *path;
     int bytes;
 
-    if (!PyArg_ParseTuple(args, "O&|i:RAND_egd",
+    if (!PyArg_ParseTuple(args, "O&:RAND_egd",
                           PyUnicode_FSConverter, &path))
         return NULL;
 

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list