[SCM] Samba Shared Repository - branch master updated

Noel Power npower at samba.org
Tue Apr 23 19:04:02 UTC 2019


The branch, master has been updated
       via  76967b33ebb pyldb: avoid segfault when adding an element with no name
       via  1d7dee5815d pytest/segfault: segfault with nameless element
      from  e24e344d0da waf: install: Remove installation of PIDL and manpages.

https://git.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 76967b33ebb93a7ef5daa94b123ef9bfdce59ece
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date:   Fri Apr 12 15:00:20 2019 +1200

    pyldb: avoid segfault when adding an element with no name
    
    We don't want to see this:
    
    python3 -c "import sys
    sys.path.insert(0, 'bin/python')
    import ldb
    m = ldb.Message()
    e = ldb.MessageElement('q')
    try:
        m.add(e)
    except ldb.LdbError:
        pass
    print(m)
    "
    Segmentation fault (core dumped)
    
    instead we want this:
    
    Traceback (most recent call last):
    File "<string>", line 7, in <module>
    ValueError: The element has no name
    
    Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
    Reviewed-by: Noel Power <npower at samba.org>
    
    Autobuild-User(master): Noel Power <npower at samba.org>
    Autobuild-Date(master): Tue Apr 23 19:03:35 UTC 2019 on sn-devel-144

commit 1d7dee5815d1eaf43f841231767e19d110551aa3
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date:   Sat Apr 13 11:29:15 2019 +1200

    pytest/segfault: segfault with nameless element
    
    Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
    Reviewed-by: Noel Power <npower at samba.org>

-----------------------------------------------------------------------

Summary of changes:
 lib/ldb/pyldb.c                |  6 +++++-
 python/samba/tests/segfault.py | 10 ++++++++++
 2 files changed, 15 insertions(+), 1 deletion(-)


Changeset truncated at 500 lines:

diff --git a/lib/ldb/pyldb.c b/lib/ldb/pyldb.c
index 6e845d15c36..319840c2ea6 100644
--- a/lib/ldb/pyldb.c
+++ b/lib/ldb/pyldb.c
@@ -3528,7 +3528,11 @@ static PyObject *py_ldb_msg_add(PyLdbMessageObject *self, PyObject *args)
 		PyErr_SetString(PyExc_ValueError, "Invalid MessageElement object");
 		return NULL;
 	}
-
+	if (el->name == NULL) {
+		PyErr_SetString(PyExc_ValueError,
+				"The element has no name");
+		return NULL;
+	}
 	ret = ldb_msg_add_empty(msg, el->name, el->flags, &el_new);
 	PyErr_LDB_ERROR_IS_ERR_RAISE(PyExc_LdbError, ret, NULL);
 
diff --git a/python/samba/tests/segfault.py b/python/samba/tests/segfault.py
index 38dcb5c7036..b95c1ef5fa9 100644
--- a/python/samba/tests/segfault.py
+++ b/python/samba/tests/segfault.py
@@ -124,3 +124,13 @@ class SegfaultTests(samba.tests.TestCase):
             registry.open_ldb('', credentials=42)
         except ldb.LdbError as e:
             print("failed with %s" % e)
+
+    @segfault_detector
+    def test_ldb_add_nameless_element(self):
+        m = ldb.Message()
+        e = ldb.MessageElement('q')
+        try:
+            m.add(e)
+        except ldb.LdbError:
+            pass
+        str(m)


-- 
Samba Shared Repository



More information about the samba-cvs mailing list