The call to PyStringAsString() can raise an exception, and we
want to return that rather than following a NULL pointer later.
Andrew Bartlett
return NULL;
key = PyString_AsTDB_DATA(py_key);
return NULL;
key = PyString_AsTDB_DATA(py_key);
+ if (!key.dptr)
+ return NULL;
return PyString_FromTDB_DATA(tdb_fetch(self->ctx, key));
}
return PyString_FromTDB_DATA(tdb_fetch(self->ctx, key));
}
return NULL;
key = PyString_AsTDB_DATA(py_key);
return NULL;
key = PyString_AsTDB_DATA(py_key);
+ if (!key.dptr)
+ return NULL;
data = PyString_AsTDB_DATA(py_data);
data = PyString_AsTDB_DATA(py_data);
+ if (!data.dptr)
+ return NULL;
ret = tdb_append(self->ctx, key, data);
PyErr_TDB_ERROR_IS_ERR_RAISE(ret, self->ctx);
ret = tdb_append(self->ctx, key, data);
PyErr_TDB_ERROR_IS_ERR_RAISE(ret, self->ctx);
return NULL;
key = PyString_AsTDB_DATA(py_key);
return NULL;
key = PyString_AsTDB_DATA(py_key);
+ if (!key.dptr)
+ return NULL;
return PyString_FromTDB_DATA(tdb_nextkey(self->ctx, key));
}
return PyString_FromTDB_DATA(tdb_nextkey(self->ctx, key));
}
return NULL;
key = PyString_AsTDB_DATA(py_key);
return NULL;
key = PyString_AsTDB_DATA(py_key);
+ if (!key.dptr)
+ return NULL;
ret = tdb_delete(self->ctx, key);
PyErr_TDB_ERROR_IS_ERR_RAISE(ret, self->ctx);
Py_RETURN_NONE;
ret = tdb_delete(self->ctx, key);
PyErr_TDB_ERROR_IS_ERR_RAISE(ret, self->ctx);
Py_RETURN_NONE;
return NULL;
key = PyString_AsTDB_DATA(py_key);
return NULL;
key = PyString_AsTDB_DATA(py_key);
+ if (!key.dptr)
+ return NULL;
ret = tdb_exists(self->ctx, key);
if (ret != TDB_ERR_NOEXIST) {
PyErr_TDB_ERROR_IS_ERR_RAISE(ret, self->ctx);
ret = tdb_exists(self->ctx, key);
if (ret != TDB_ERR_NOEXIST) {
PyErr_TDB_ERROR_IS_ERR_RAISE(ret, self->ctx);
return NULL;
key = PyString_AsTDB_DATA(py_key);
return NULL;
key = PyString_AsTDB_DATA(py_key);
+ if (!key.dptr)
+ return NULL;
value = PyString_AsTDB_DATA(py_value);
value = PyString_AsTDB_DATA(py_value);
+ if (!value.dptr)
+ return NULL;
ret = tdb_store(self->ctx, key, value, flag);
PyErr_TDB_ERROR_IS_ERR_RAISE(ret, self->ctx);
ret = tdb_store(self->ctx, key, value, flag);
PyErr_TDB_ERROR_IS_ERR_RAISE(ret, self->ctx);