s3-winbind: Fix a segfault passing NULL to a fstring argument.
authorAndreas Schneider <asn@samba.org>
Mon, 12 Aug 2013 18:22:04 +0000 (20:22 +0200)
committerKarolin Seeger <kseeger@samba.org>
Wed, 14 Aug 2013 10:55:05 +0000 (12:55 +0200)
BUG: https://bugzilla.samba.org/show_bug.cgi?id=10082

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>
Autobuild-User(master): Andreas Schneider <asn@cryptomilk.org>
Autobuild-Date(master): Tue Aug 13 13:58:26 CEST 2013 on sn-devel-104

Autobuild-User(v4-1-test): Karolin Seeger <kseeger@samba.org>
Autobuild-Date(v4-1-test): Wed Aug 14 12:55:05 CEST 2013 on sn-devel-104

source3/winbindd/winbindd_cm.c

index 50728a56d85d6d984c30ec7b9177fc95217a3fdb..48322cbdd0977371e2c7ffc4a85071ae1fa7e5e2 100644 (file)
@@ -1127,6 +1127,7 @@ static bool dcip_to_name(TALLOC_CTX *mem_ctx,
        uint32_t nt_version = NETLOGON_NT_VERSION_1;
        NTSTATUS status;
        const char *dc_name;
+       fstring nbtname;
 
        ip_list.ss = *pss;
        ip_list.port = 0;
@@ -1210,9 +1211,17 @@ static bool dcip_to_name(TALLOC_CTX *mem_ctx,
 
        /* try node status request */
 
-       if (name_status_find(domain->name, 0x1c, 0x20, pss, *name) ) {
+       if (name_status_find(domain->name, 0x1c, 0x20, pss, nbtname) ) {
                namecache_store(*name, 0x20, 1, &ip_list);
-               return True;
+
+               if (name != NULL) {
+                       *name = talloc_strdup(mem_ctx, nbtname);
+                       if (*name == NULL) {
+                               return false;
+                       }
+               }
+
+               return true;
        }
        return False;
 }