Commit 84167d09 authored by Neal Norwitz's avatar Neal Norwitz

Even though _Py_Mangle() isn't truly public anyone can call it and

there was no verification that privateobj was a PyString.  If it wasn't
a string, this could have allowed a NULL pointer to creep in below and crash.

I wonder if this should be PyString_CheckExact?  Must identifiers be strings
or can they be subclasses?

Klocwork #275
parent 6f5ff3f3
......@@ -204,8 +204,8 @@ _Py_Mangle(PyObject *privateobj, PyObject *ident)
const char *p, *name = PyString_AsString(ident);
char *buffer;
size_t nlen, plen;
if (privateobj == NULL || name == NULL || name[0] != '_' ||
name[1] != '_') {
if (privateobj == NULL || !PyString_Check(privateobj) ||
name == NULL || name[0] != '_' || name[1] != '_') {
Py_INCREF(ident);
return ident;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment