From: Victor Stinner Date: Mon, 28 Oct 2013 17:47:22 +0000 (+0100) Subject: Issue #19421: fix a check in warnings.warn() to be able to use it during Python X-Git-Tag: v3.4.0b1~504 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ce5f4fba11262453f06ad431803a672be8a950dd;p=thirdparty%2FPython%2Fcpython.git Issue #19421: fix a check in warnings.warn() to be able to use it during Python finalization. sys.argv is set to None during Python finalization: add PyList_Check() to avoid a crash in PyList_Size(). --- diff --git a/Python/_warnings.c b/Python/_warnings.c index b8d4bb61def4..23b3f5c02d3f 100644 --- a/Python/_warnings.c +++ b/Python/_warnings.c @@ -534,7 +534,9 @@ setup_context(Py_ssize_t stack_level, PyObject **filename, int *lineno, goto handle_error; if (strcmp(module_str, "__main__") == 0) { PyObject *argv = PySys_GetObject("argv"); - if (argv != NULL && PyList_Size(argv) > 0) { + /* PyList_Check() is needed because sys.argv is set to None during + Python finalization */ + if (argv != NULL && PyList_Check(argv) && PyList_Size(argv) > 0) { int is_true; *filename = PyList_GetItem(argv, 0); Py_INCREF(*filename);