wbinfo: avoid segfault in wbinfo_auth_crap() if winbindd is not available
authorStefan Metzmacher <metze@samba.org>
Sun, 4 Feb 2018 21:48:01 +0000 (22:48 +0100)
committerRalph Boehme <slow@samba.org>
Sat, 10 Feb 2018 07:35:16 +0000 (08:35 +0100)
Bug: https://bugzilla.samba.org/show_bug.cgi?id=13256

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
nsswitch/wbinfo.c

index 54d5758aa6c68057f609c23ac8597297f74bfb06..82863c267604f5edffd332622e36d41179776b7e 100644 (file)
@@ -1798,13 +1798,22 @@ static bool wbinfo_auth_crap(char *username, bool use_ntlmv2, bool use_lanman)
        if (use_ntlmv2) {
                DATA_BLOB server_chal;
                DATA_BLOB names_blob;
+               const char *netbios_name = NULL;
+               const char *domain = NULL;
+
+               netbios_name = get_winbind_netbios_name(),
+               domain = get_winbind_domain();
+               if (domain == NULL) {
+                       d_fprintf(stderr, "Failed to get domain from winbindd\n");
+                       return false;
+               }
 
                server_chal = data_blob(params.password.response.challenge, 8);
 
                /* Pretend this is a login to 'us', for blob purposes */
                names_blob = NTLMv2_generate_names_blob(NULL,
-                                               get_winbind_netbios_name(),
-                                               get_winbind_domain());
+                                                       netbios_name,
+                                                       domain);
 
                if (pass != NULL &&
                    !SMBNTLMv2encrypt(NULL, name_user, name_domain, pass,