diff options
author | Douglas Bagnall <douglas.bagnall@catalyst.net.nz> | 2019-07-04 16:43:12 +1200 |
---|---|---|
committer | Douglas Bagnall <dbagnall@samba.org> | 2019-07-10 04:32:13 +0000 |
commit | fdb9a59069c5fea131669510b59901cbe3d9e58e (patch) | |
tree | ed9f005035f036b2b72edc7172e49201c5974900 | |
parent | 192386ede62c4a72c0fbc173240f02357455c609 (diff) | |
download | samba-fdb9a59069c5fea131669510b59901cbe3d9e58e.tar.gz |
pyldb: ldb.register_module() checks arguments a little bit
Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
-rw-r--r-- | lib/ldb/pyldb.c | 14 | ||||
-rw-r--r-- | selftest/knownfail.d/python-segfaults | 1 |
2 files changed, 11 insertions, 4 deletions
diff --git a/lib/ldb/pyldb.c b/lib/ldb/pyldb.c index 13d7c962d1e..a6069be46a9 100644 --- a/lib/ldb/pyldb.c +++ b/lib/ldb/pyldb.c @@ -4136,7 +4136,8 @@ static PyObject *py_register_module(PyObject *module, PyObject *args) int ret; struct ldb_module_ops *ops; PyObject *input; - PyObject *tmp; + PyObject *tmp = NULL; + const char *name = NULL; if (!PyArg_ParseTuple(args, "O", &input)) return NULL; @@ -4148,10 +4149,17 @@ static PyObject *py_register_module(PyObject *module, PyObject *args) } tmp = PyObject_GetAttrString(input, discard_const_p(char, "name")); - ops->name = talloc_strdup(ops, PyUnicode_AsUTF8(tmp)); - + if (tmp == NULL) { + return NULL; + } + name = PyUnicode_AsUTF8(tmp); + if (name == NULL) { + return NULL; + } Py_XDECREF(tmp); Py_INCREF(input); + + ops->name = talloc_strdup(ops, name); ops->private_data = input; ops->init_context = py_module_init; ops->search = py_module_search; diff --git a/selftest/knownfail.d/python-segfaults b/selftest/knownfail.d/python-segfaults index e5821538b6e..42f83f8b8b9 100644 --- a/selftest/knownfail.d/python-segfaults +++ b/selftest/knownfail.d/python-segfaults @@ -1,5 +1,4 @@ samba.tests.segfault.samba.tests.segfault.SegfaultTests.test_encrypt_netr_crypt_password samba.tests.segfault.samba.tests.segfault.SegfaultTests.test_hive_open_ldb -samba.tests.segfault.samba.tests.segfault.SegfaultTests.test_ldb_register_module samba.tests.segfault.samba.tests.segfault.SegfaultTests.test_net_replicate_chunk_1 samba.tests.segfault.samba.tests.segfault.SegfaultTests.test_net_replicate_init__3 |