mirror of
https://github.com/python/cpython.git
synced 2025-08-03 16:39:00 +00:00
Issue #28715: Added error checks for PyUnicode_AsUTF8().
This commit is contained in:
parent
93ff8725b3
commit
144f77a981
5 changed files with 20 additions and 10 deletions
|
@ -2024,16 +2024,18 @@ ast_for_atom(struct compiling *c, const node *n)
|
|||
errtype = "value error";
|
||||
if (errtype) {
|
||||
char buf[128];
|
||||
const char *s = NULL;
|
||||
PyObject *type, *value, *tback, *errstr;
|
||||
PyErr_Fetch(&type, &value, &tback);
|
||||
errstr = PyObject_Str(value);
|
||||
if (errstr) {
|
||||
char *s = _PyUnicode_AsString(errstr);
|
||||
if (errstr)
|
||||
s = PyUnicode_AsUTF8(errstr);
|
||||
if (s) {
|
||||
PyOS_snprintf(buf, sizeof(buf), "(%s) %s", errtype, s);
|
||||
Py_DECREF(errstr);
|
||||
} else {
|
||||
PyOS_snprintf(buf, sizeof(buf), "(%s) unknown error", errtype);
|
||||
}
|
||||
Py_XDECREF(errstr);
|
||||
ast_error(c, n, buf);
|
||||
Py_DECREF(type);
|
||||
Py_XDECREF(value);
|
||||
|
|
|
@ -147,6 +147,10 @@ _PyImport_LoadDynamicModuleWithSpec(PyObject *spec, FILE *fp)
|
|||
/* Package context is needed for single-phase init */
|
||||
oldcontext = _Py_PackageContext;
|
||||
_Py_PackageContext = PyUnicode_AsUTF8(name_unicode);
|
||||
if (_Py_PackageContext == NULL) {
|
||||
_Py_PackageContext = oldcontext;
|
||||
goto error;
|
||||
}
|
||||
m = p0();
|
||||
_Py_PackageContext = oldcontext;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue