1
0
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:
Andreas Schneider 2012-12-11 16:51:01 +01:00 committed by Andreas Schneider
parent d07a964fe2
commit 7f08365a28

View File

@ -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;
}