From: Irit Katriel <1055913+iritkatriel@users.noreply.github.com> Date: Mon, 20 Sep 2021 15:10:30 +0000 (+0100) Subject: bpo-1514420: Do not attempt to open files with names in <>s when formatting an except... X-Git-Tag: v3.11.0a1~111 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f71300cb0442f16ee9abc938e12537aec1eb5979;p=thirdparty%2FPython%2Fcpython.git bpo-1514420: Do not attempt to open files with names in <>s when formatting an exception (GH-28143) Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com> Co-authored-by: Ɓukasz Langa --- diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-09-03-16-18-10.bpo-1514420.2Lumpj.rst b/Misc/NEWS.d/next/Core and Builtins/2021-09-03-16-18-10.bpo-1514420.2Lumpj.rst new file mode 100644 index 000000000000..fdd5cd70c5c2 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2021-09-03-16-18-10.bpo-1514420.2Lumpj.rst @@ -0,0 +1 @@ +Interpreter no longer attempts to open files with names in angle brackets (like "" or "") when formatting an exception. \ No newline at end of file diff --git a/Python/traceback.c b/Python/traceback.c index cdabd2900acf..76280a35e3a5 100644 --- a/Python/traceback.c +++ b/Python/traceback.c @@ -396,6 +396,15 @@ _Py_DisplaySourceLine(PyObject *f, PyObject *filename, int lineno, int indent, i if (filename == NULL) return 0; + /* Do not attempt to open things like or */ + assert(PyUnicode_Check(filename)); + if (PyUnicode_READ_CHAR(filename, 0) == '<') { + Py_ssize_t len = PyUnicode_GET_LENGTH(filename); + if (len > 0 && PyUnicode_READ_CHAR(filename, len - 1) == '>') { + return 0; + } + } + io = PyImport_ImportModuleNoBlock("io"); if (io == NULL) return -1;