mirror of
https://github.com/samba-team/samba.git
synced 2025-03-01 04:58:35 +03:00
tdb: Fix possible crash bugs in the python tdb code.
You can't call tdb_error() for tdb_reopen() or tdb_close(), both return the error code of close(2) and not a TDB_ERROR! Reviewed-by: Simo Sorce <idra@samba.org> Reviewed-by: Jelmer Vernooij <jelmer@samba.org>
This commit is contained in:
parent
d07a964fe2
commit
7f08365a28
@ -164,7 +164,14 @@ static PyObject *obj_reopen(PyTdbObject *self)
|
||||
int ret;
|
||||
PyErr_TDB_RAISE_IF_CLOSED(self);
|
||||
ret = tdb_reopen(self->ctx);
|
||||
PyErr_TDB_ERROR_IS_ERR_RAISE(ret, self->ctx);
|
||||
if (ret != 0) {
|
||||
self->closed = true;
|
||||
PyErr_SetObject(PyExc_RuntimeError,
|
||||
Py_BuildValue("(i,s)",
|
||||
TDB_ERR_IO,
|
||||
"Failed to reopen database"));
|
||||
return NULL;
|
||||
}
|
||||
Py_RETURN_NONE;
|
||||
}
|
||||
|
||||
@ -209,7 +216,13 @@ static PyObject *obj_close(PyTdbObject *self)
|
||||
Py_RETURN_NONE;
|
||||
ret = tdb_close(self->ctx);
|
||||
self->closed = true;
|
||||
PyErr_TDB_ERROR_IS_ERR_RAISE(ret, self->ctx);
|
||||
if (ret != 0) {
|
||||
PyErr_SetObject(PyExc_RuntimeError,
|
||||
Py_BuildValue("(i,s)",
|
||||
TDB_ERR_IO,
|
||||
"Failed to close database"));
|
||||
return NULL;
|
||||
}
|
||||
Py_RETURN_NONE;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user