mirror of
https://github.com/samba-team/samba.git
synced 2025-02-28 01:58:17 +03:00
pyldb: py_ldb_dn_richcmp() uses PyErr_LDB_DN_OR_RAISE
The `if (!pyldb_Dn_Check(pydn2))` might seem redundant, but we need it to return Py_NotImplemented before the _OR_RAISE macro raises TypeError. Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
This commit is contained in:
parent
982a87cedf
commit
8830149ef9
@ -589,14 +589,19 @@ static PyObject *py_ldb_dn_check_special(PyLdbDnObject *self, PyObject *args)
|
||||
return PyBool_FromLong(ldb_dn_check_special(self->dn, name));
|
||||
}
|
||||
|
||||
static PyObject *py_ldb_dn_richcmp(PyObject *dn1, PyObject *dn2, int op)
|
||||
static PyObject *py_ldb_dn_richcmp(PyObject *pydn1, PyObject *pydn2, int op)
|
||||
{
|
||||
int ret;
|
||||
if (!pyldb_Dn_Check(dn2)) {
|
||||
struct ldb_dn *dn1 = NULL;
|
||||
struct ldb_dn *dn2 = NULL;
|
||||
if (!pyldb_Dn_Check(pydn2)) {
|
||||
Py_INCREF(Py_NotImplemented);
|
||||
return Py_NotImplemented;
|
||||
}
|
||||
ret = ldb_dn_compare(pyldb_Dn_AS_DN(dn1), pyldb_Dn_AS_DN(dn2));
|
||||
PyErr_LDB_DN_OR_RAISE(pydn1, dn1);
|
||||
PyErr_LDB_DN_OR_RAISE(pydn2, dn2);
|
||||
|
||||
ret = ldb_dn_compare(dn1, dn2);
|
||||
return richcmp(ret, op);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user