Issue #6697: Check that _PyUnicode_AsString() result is not NULL
This commit is contained in:
parent
f3f22a278d
commit
386fe71de1
|
@ -138,8 +138,8 @@ add_flag(int flag, const char *envs)
|
|||
static char*
|
||||
get_codeset(void)
|
||||
{
|
||||
char* codeset;
|
||||
PyObject *codec, *name;
|
||||
char* codeset, *name_str;
|
||||
PyObject *codec, *name = NULL;
|
||||
|
||||
codeset = nl_langinfo(CODESET);
|
||||
if (!codeset || codeset[0] == '\0')
|
||||
|
@ -154,12 +154,16 @@ get_codeset(void)
|
|||
if (!name)
|
||||
goto error;
|
||||
|
||||
codeset = strdup(_PyUnicode_AsString(name));
|
||||
name_str = _PyUnicode_AsString(name);
|
||||
if (name == NULL)
|
||||
goto error;
|
||||
codeset = strdup(name_str);
|
||||
Py_DECREF(name);
|
||||
return codeset;
|
||||
|
||||
error:
|
||||
Py_XDECREF(codec);
|
||||
Py_XDECREF(name);
|
||||
return NULL;
|
||||
}
|
||||
#endif
|
||||
|
@ -1060,22 +1064,34 @@ PyRun_InteractiveOneFlags(FILE *fp, const char *filename, PyCompilerFlags *flags
|
|||
if (!oenc)
|
||||
return -1;
|
||||
enc = _PyUnicode_AsString(oenc);
|
||||
if (enc == NULL)
|
||||
return -1;
|
||||
}
|
||||
v = PySys_GetObject("ps1");
|
||||
if (v != NULL) {
|
||||
v = PyObject_Str(v);
|
||||
if (v == NULL)
|
||||
PyErr_Clear();
|
||||
else if (PyUnicode_Check(v))
|
||||
else if (PyUnicode_Check(v)) {
|
||||
ps1 = _PyUnicode_AsString(v);
|
||||
if (ps1 == NULL) {
|
||||
PyErr_Clear();
|
||||
ps1 = "";
|
||||
}
|
||||
}
|
||||
}
|
||||
w = PySys_GetObject("ps2");
|
||||
if (w != NULL) {
|
||||
w = PyObject_Str(w);
|
||||
if (w == NULL)
|
||||
PyErr_Clear();
|
||||
else if (PyUnicode_Check(w))
|
||||
else if (PyUnicode_Check(w)) {
|
||||
ps2 = _PyUnicode_AsString(w);
|
||||
if (ps2 == NULL) {
|
||||
PyErr_Clear();
|
||||
ps2 = "";
|
||||
}
|
||||
}
|
||||
}
|
||||
arena = PyArena_New();
|
||||
if (arena == NULL) {
|
||||
|
|
Loading…
Reference in New Issue