Consider the case dereferencing weakref in conn_poll returns NULL

It shouldn't but handle the case to avoid a possible null pointer
dereferencing.
This commit is contained in:
Daniele Varrazzo 2018-12-28 14:28:29 +01:00
parent 5b28d7b9c9
commit 4644715164

View File

@ -1081,7 +1081,16 @@ conn_poll(connectionObject *self)
/* An async query has just finished: parse the tuple in the
* target cursor. */
cursorObject *curs;
PyObject *py_curs = PyWeakref_GetObject(self->async_cursor);
PyObject *py_curs;
if (!(py_curs = PyWeakref_GetObject(self->async_cursor))) {
/* It shouldn't happen but consider it to avoid dereferencing
* a null pointer below. */
pq_clear_async(self);
PyErr_SetString(PyExc_SystemError,
"got null dereferencing cursor weakref");
res = PSYCO_POLL_ERROR;
break;
}
if (Py_None == py_curs) {
pq_clear_async(self);
PyErr_SetString(InterfaceError,