]> granicus.if.org Git - python/commitdiff
Benjamin Peterson's patch to fix bug 3661, sys.call_tracing segfaults.
authorBarry Warsaw <barry@python.org>
Fri, 17 Oct 2008 01:29:56 +0000 (01:29 +0000)
committerBarry Warsaw <barry@python.org>
Fri, 17 Oct 2008 01:29:56 +0000 (01:29 +0000)
Lib/test/test_sys.py
Python/sysmodule.c

index 5c1a8e9cacba6741f2ed99b93b8a02dd2db952e5..a8c19ee1a74c940ed6d0e9dce5538a2d0b1bd8b3 100644 (file)
@@ -166,6 +166,9 @@ class SysModuleTest(unittest.TestCase):
             self.assert_(isinstance(v[3], int))
             self.assert_(isinstance(v[4], str))
 
+    def test_call_tracing(self):
+        self.assertRaises(TypeError, sys.call_tracing, type, 2)
+
     def test_dlopenflags(self):
         if hasattr(sys, "setdlopenflags"):
             self.assert_(hasattr(sys, "getdlopenflags"))
index 10a87611c0d7d30e523262cf93308ab99a9fe8f5..952f7e59045b6e4df81b232aca507a05c1c9992e 100644 (file)
@@ -783,7 +783,7 @@ static PyObject *
 sys_call_tracing(PyObject *self, PyObject *args)
 {
        PyObject *func, *funcargs;
-       if (!PyArg_UnpackTuple(args, "call_tracing", 2, 2, &func, &funcargs))
+       if (!PyArg_ParseTuple(args, "OO!:call_tracing", &func, &PyTuple_Type, &funcargs))
                return NULL;
        return _PyEval_CallTracing(func, funcargs);
 }