summaryrefslogtreecommitdiff
path: root/source4/lib/ldb/pyldb.c
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2009-06-17 18:25:21 +0200
committerJelmer Vernooij <jelmer@samba.org>2009-06-17 20:45:37 +0200
commit2f27d0c762c8f5be416ed38e00150a8ba58e63ad (patch)
treef5f2b950484d53c723ce6e8ffef0e532909119ac /source4/lib/ldb/pyldb.c
parentac1d311e9cc47a45d55b781f5dd2cea8ee8936b3 (diff)
downloadsamba-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.c10
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)