[SCM] Samba Shared Repository - branch master updated

Noel Power npower at samba.org
Tue Aug 6 18:18:02 UTC 2019


The branch, master has been updated
       via  fe9b12b2740 pidl/ndr/python: avoid memory errors in getsetters
       via  d6a82edd19b s4/messaging/py: don't DECREF borrowed references
       via  b136f153b83 ldb_dn: free dn components on explode failure
      from  5d4aa6e8670 s3:smbd: Fix sync dosmode fallback in async dosmode codepath

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


- Log -----------------------------------------------------------------
commit fe9b12b274028a1310ac6c59cc56ac36bb40ef5e
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date:   Thu Aug 1 23:29:55 2019 +0000

    pidl/ndr/python: avoid memory errors in getsetters
    
    This:
    
       $ python3 -c'from samba.dcerpc import lsa; x = lsa.EnumAccounts(); x.in_handle'
    
    should not raise a MemoryError, which is very unfriendly given that
    'x.in_handle' is just named, not called, as far as the user is
    concerned. Returning None is the proper thing.
    
    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 Aug  6 18:17:11 UTC 2019 on sn-devel-184

commit d6a82edd19b82d99401a27dbc6fe10121142e431
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date:   Thu Aug 1 16:02:05 2019 +1200

    s4/messaging/py: don't DECREF borrowed references
    
    This made Message.deregister() a decref machine, with talloc crashes
    and segfaults available thus:
    
        from samba import messaging
        m = messaging.Messaging()
        for i in range(20):
            m.deregister(m)
    
    Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
    Reviewed-by: Noel Power <npower at samba.org>

commit b136f153b83d80a91ec9d5350fdf08412d881964
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date:   Fri Mar 8 12:12:00 2019 +1300

    ldb_dn: free dn components on explode failure
    
    Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
    Reviewed-by: Noel Power <npower at samba.org>

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

Summary of changes:
 lib/ldb/common/ldb_dn.c              | 2 +-
 pidl/lib/Parse/Pidl/Samba4/Python.pm | 8 ++++++++
 source4/lib/messaging/pymessaging.c  | 2 --
 3 files changed, 9 insertions(+), 3 deletions(-)


Changeset truncated at 500 lines:

diff --git a/lib/ldb/common/ldb_dn.c b/lib/ldb/common/ldb_dn.c
index eccb4a0ce4b..23a817edf65 100644
--- a/lib/ldb/common/ldb_dn.c
+++ b/lib/ldb/common/ldb_dn.c
@@ -340,7 +340,7 @@ static bool ldb_dn_explode(struct ldb_dn *dn)
 	/* Components data space is allocated here once */
 	data = talloc_array(dn->components, char, strlen(parse_dn) + 1);
 	if (!data) {
-		return false;
+		goto failed;
 	}
 
 	p = parse_dn;
diff --git a/pidl/lib/Parse/Pidl/Samba4/Python.pm b/pidl/lib/Parse/Pidl/Samba4/Python.pm
index 97c417adf35..8d5de31e7bb 100644
--- a/pidl/lib/Parse/Pidl/Samba4/Python.pm
+++ b/pidl/lib/Parse/Pidl/Samba4/Python.pm
@@ -201,6 +201,14 @@ sub PythonElementGetSet($$$$$$) {
 	$self->indent;
 	$self->pidl("$cname *object = ($cname *)pytalloc_get_ptr(obj);");
 	$self->pidl("PyObject *py_$e->{NAME};");
+	my $l = $e->{LEVELS}[0];
+	if ($l->{TYPE} eq "POINTER") {
+		$self->pidl("if ($varname == NULL) {");
+		$self->indent;
+		$self->pidl("Py_RETURN_NONE;");
+		$self->deindent;
+		$self->pidl("}");
+	}
 	$self->ConvertObjectToPython("pytalloc_get_mem_ctx(obj)", $env, $e, $varname, "py_$e->{NAME}", "return NULL;");
 	$self->pidl("return py_$e->{NAME};");
 	$self->deindent;
diff --git a/source4/lib/messaging/pymessaging.c b/source4/lib/messaging/pymessaging.c
index 39c09a82403..e506d94f474 100644
--- a/source4/lib/messaging/pymessaging.c
+++ b/source4/lib/messaging/pymessaging.c
@@ -259,8 +259,6 @@ static PyObject *py_imessaging_deregister(PyObject *self, PyObject *args, PyObje
 
 	imessaging_deregister(iface->msg_ctx, msg_type, callback);
 
-	Py_DECREF(callback);
-
 	Py_RETURN_NONE;
 }
 


-- 
Samba Shared Repository



More information about the samba-cvs mailing list