summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDouglas Bagnall <douglas.bagnall@catalyst.net.nz>2019-07-07 13:47:51 +1200
committerAndrew Bartlett <abartlet@samba.org>2019-07-22 22:20:26 +0000
commitf8fb6f326129267c7742947943df3f920c8cb54f (patch)
tree55580524a66f22582f2c6decff9067aa559b30a6
parent95a5140db3e84478b903f9e96fc34e87db2c07c6 (diff)
downloadsamba-f8fb6f326129267c7742947943df3f920c8cb54f.tar.gz
auth/pycreds/encrypt_netr_crypt_password: don't segfault
Non-talloc objects were treated as talloc objects, to no good effect Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz> Reviewed-by: Gary Lockyer <gary@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
-rw-r--r--auth/credentials/pycredentials.c5
-rw-r--r--selftest/knownfail.d/python-segfaults1
2 files changed, 5 insertions, 1 deletions
diff --git a/auth/credentials/pycredentials.c b/auth/credentials/pycredentials.c
index 5002bb86e1c..91e9276473d 100644
--- a/auth/credentials/pycredentials.c
+++ b/auth/credentials/pycredentials.c
@@ -909,7 +909,12 @@ static PyObject *py_creds_encrypt_netr_crypt_password(PyObject *self,
if (!PyArg_ParseTuple(args, "|O", &py_cp)) {
return NULL;
}
+
pwd = pytalloc_get_type(py_cp, struct netr_CryptPassword);
+ if (pwd == NULL) {
+ /* pytalloc_get_type sets TypeError */
+ return NULL;
+ }
data.length = sizeof(struct netr_CryptPassword);
data.data = (uint8_t *)pwd;
status = netlogon_creds_session_encrypt(creds->netlogon_creds, data);
diff --git a/selftest/knownfail.d/python-segfaults b/selftest/knownfail.d/python-segfaults
index 76fc645c2b6..1be0566dcb1 100644
--- a/selftest/knownfail.d/python-segfaults
+++ b/selftest/knownfail.d/python-segfaults
@@ -1,2 +1 @@
-samba.tests.segfault.samba.tests.segfault.SegfaultTests.test_encrypt_netr_crypt_password
samba.tests.segfault.samba.tests.segfault.SegfaultTests.test_net_replicate_init__3