2
3
mirror of https://foundry.openuru.org/gitblit/r/CWE-ou-minkata.git synced 2025-07-14 02:27:40 -04:00

Don't dereference a null pointer

This commit is contained in:
2013-01-31 10:44:39 -05:00
parent ad1407c75f
commit 0699490e5a

View File

@ -67,26 +67,21 @@ PYTHON_INIT_DEFINITION(ptPlayer, args, keywords)
PYTHON_RETURN_INIT_ERROR; PYTHON_RETURN_INIT_ERROR;
} }
pyKey* key = NULL; plKey key;
plString name; plString name;
uint32_t pid = -1; uint32_t pid = -1;
float distSeq = -1; float distSeq = -1;
if (pyKey::Check(firstObj)) if (pyKey::Check(firstObj))
{ {
key = pyKey::ConvertFrom(firstObj); if (!(PyString_CheckEx(secondObj) && PyNumber_Check(thirdObj) && PyFloat_Check(fourthObj)))
if (!PyString_CheckEx(secondObj))
{
PyErr_SetString(PyExc_TypeError, "__init__ expects one of two argument lists: (ptKey, string, unsigned long, float) or (string, unsigned long)");
PYTHON_RETURN_INIT_ERROR;
} else
name = PyString_AsStringEx(secondObj);
if (!(PyNumber_Check(thirdObj) && PyFloat_Check(fourthObj)))
{ {
PyErr_SetString(PyExc_TypeError, "__init__ expects one of two argument lists: (ptKey, string, unsigned long, float) or (string, unsigned long)"); PyErr_SetString(PyExc_TypeError, "__init__ expects one of two argument lists: (ptKey, string, unsigned long, float) or (string, unsigned long)");
PYTHON_RETURN_INIT_ERROR; PYTHON_RETURN_INIT_ERROR;
} }
key = pyKey::ConvertFrom(firstObj)->getKey();
name = PyString_AsStringEx(secondObj);
pid = PyNumber_AsSsize_t(thirdObj, NULL); pid = PyNumber_AsSsize_t(thirdObj, NULL);
distSeq = (float)PyFloat_AsDouble(fourthObj); distSeq = (float)PyFloat_AsDouble(fourthObj);
} else if (PyString_CheckEx(firstObj)) { } else if (PyString_CheckEx(firstObj)) {
@ -103,7 +98,7 @@ PYTHON_INIT_DEFINITION(ptPlayer, args, keywords)
PYTHON_RETURN_INIT_ERROR; PYTHON_RETURN_INIT_ERROR;
} }
self->fThis->Init(key->getKey(), name.c_str(), pid, distSeq); self->fThis->Init(key, name.c_str(), pid, distSeq);
PYTHON_RETURN_INIT_OK; PYTHON_RETURN_INIT_OK;
} }