diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2009-06-17 18:25:21 +0200 |
---|---|---|
committer | Jelmer Vernooij <jelmer@samba.org> | 2009-06-17 20:45:37 +0200 |
commit | 2f27d0c762c8f5be416ed38e00150a8ba58e63ad (patch) | |
tree | f5f2b950484d53c723ce6e8ffef0e532909119ac /source4/lib/ldb/pyldb.c | |
parent | ac1d311e9cc47a45d55b781f5dd2cea8ee8936b3 (diff) | |
download | samba-2f27d0c762c8f5be416ed38e00150a8ba58e63ad.tar.gz samba-2f27d0c762c8f5be416ed38e00150a8ba58e63ad.tar.bz2 samba-2f27d0c762c8f5be416ed38e00150a8ba58e63ad.zip |
pyldb: Support getting the parent of special DNs without segfaulting.
Found by: Андрей Григорьев <andrew@ei-grad.ru>
Diffstat (limited to 'source4/lib/ldb/pyldb.c')
-rw-r--r-- | source4/lib/ldb/pyldb.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/source4/lib/ldb/pyldb.c b/source4/lib/ldb/pyldb.c index 52d8530439..ab2a1215b8 100644 --- a/source4/lib/ldb/pyldb.c +++ b/source4/lib/ldb/pyldb.c @@ -206,7 +206,15 @@ static int py_ldb_dn_compare(PyLdbDnObject *dn1, PyLdbDnObject *dn2) static PyObject *py_ldb_dn_get_parent(PyLdbDnObject *self) { struct ldb_dn *dn = PyLdbDn_AsDn((PyObject *)self); - return PyLdbDn_FromDn(ldb_dn_get_parent(NULL, dn)); + struct ldb_dn *parent; + + parent = ldb_dn_get_parent(NULL, dn); + + if (parent == NULL) { + Py_RETURN_NONE; + } else { + return PyLdbDn_FromDn(parent); + } } #define dn_ldb_ctx(dn) ((struct ldb_context *)dn) |