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)
committerAndreas Schneider <asn@cryptomilk.org>
Tue, 13 Aug 2013 11:58:25 +0000 (13:58 +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

source3/winbindd/winbindd_cm.c

index 6c3f6eadf277ed9765b3471c3c8ebdf68f1314aa..08c763c8d84167be40f36f4da67ab54b0e90cb3d 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;
 }