summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@haypocalc.com>2010-01-31 22:33:22 (GMT)
committerVictor Stinner <victor.stinner@haypocalc.com>2010-01-31 22:33:22 (GMT)
commitd85f1c01afebd1db5d9400ba83b6d90e0819ce79 (patch)
tree25b3410c5e17fe190413c4b32831cf3b24bca6ef
parent22697c0c72f0c94b353ab0ea70e972c4b10acbe6 (diff)
downloadcpython-d85f1c01afebd1db5d9400ba83b6d90e0819ce79.zip
cpython-d85f1c01afebd1db5d9400ba83b6d90e0819ce79.tar.gz
cpython-d85f1c01afebd1db5d9400ba83b6d90e0819ce79.tar.bz2
Merged revisions 77892 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r77892 | victor.stinner | 2010-01-31 23:32:15 +0100 (dim., 31 janv. 2010) | 4 lines Issue #7819: Check sys.call_tracing() arguments types. py3k was already patched by issue #3661. ........
-rw-r--r--Lib/test/test_sys.py4
-rw-r--r--Misc/NEWS2
-rw-r--r--Python/sysmodule.c2
3 files changed, 7 insertions, 1 deletions
diff --git a/Lib/test/test_sys.py b/Lib/test/test_sys.py
index 9589771..a882984 100644
--- a/Lib/test/test_sys.py
+++ b/Lib/test/test_sys.py
@@ -391,6 +391,10 @@ class SysModuleTest(unittest.TestCase):
out = p.stdout.read().strip()
self.assertEqual(out, '?')
+ def test_call_tracing(self):
+ self.assertEqual(sys.call_tracing(str, (2,)), "2")
+ self.assertRaises(TypeError, sys.call_tracing, str, 2)
+
class SizeofTest(unittest.TestCase):
diff --git a/Misc/NEWS b/Misc/NEWS
index d299a68..200764d 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -12,6 +12,8 @@ What's New in Python 2.6.5
Core and Builtins
-----------------
+- Issue #7819: Check sys.call_tracing() arguments types.
+
- Issue #7788: Fix an interpreter crash produced by deleting a list
slice with very large step value.
diff --git a/Python/sysmodule.c b/Python/sysmodule.c
index 10ba1cf..721f77d 100644
--- a/Python/sysmodule.c
+++ b/Python/sysmodule.c
@@ -802,7 +802,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);
}