[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