From fd3ba736db19d4c7cd928f3735329339a8c8ef47 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Sat, 15 Sep 2018 00:29:20 -0600 Subject: Check for negative argument in Type.template_argument typy_template_argument did not check if the template argument was non-negative. A negative value could cause a gdb crash. 2018-09-23 Tom Tromey PR python/17284: * python/py-type.c (typy_template_argument): Check for negative argument number. gdb/testsuite/ChangeLog 2018-09-23 Tom Tromey PR python/17284: * gdb.python/py-template.exp (test_template_arg): Add test for negative template argument number. --- gdb/python/py-type.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'gdb/python') diff --git a/gdb/python/py-type.c b/gdb/python/py-type.c index c7cad2e..897ad93 100644 --- a/gdb/python/py-type.c +++ b/gdb/python/py-type.c @@ -930,6 +930,13 @@ typy_template_argument (PyObject *self, PyObject *args) if (! PyArg_ParseTuple (args, "i|O", &argno, &block_obj)) return NULL; + if (argno < 0) + { + PyErr_SetString (PyExc_RuntimeError, + _("Template argument number must be non-negative")); + return NULL; + } + if (block_obj) { block = block_object_to_block (block_obj); -- cgit v1.1