]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
cli_rpc_pipe_open_noauth must take the user/domain from the smb session
authorVolker Lendecke <vl@samba.org>
Tue, 22 Apr 2008 16:17:01 +0000 (18:17 +0200)
committerVolker Lendecke <vl@samba.org>
Fri, 25 Apr 2008 09:12:52 +0000 (11:12 +0200)
source/rpc_client/cli_pipe.c

index 1897cff18e8cac54e0b4106df112abbd0d90f75f..748a000b479bbcf05d4f81f2ac09abb2b73a312c 100644 (file)
@@ -2482,6 +2482,24 @@ struct rpc_pipe_client *cli_rpc_pipe_open_noauth(struct cli_state *cli, int pipe
                return NULL;
        }
 
+       /*
+        * This is a bit of an abstraction violation due to the fact that an
+        * anonymous bind on an authenticated SMB inherits the user/domain
+        * from the enclosing SMB creds
+        */
+
+       TALLOC_FREE(auth->user_name);
+       TALLOC_FREE(auth->domain);
+
+       auth->user_name = talloc_strdup(auth, cli->user_name);
+       auth->domain = talloc_strdup(auth, cli->domain);
+
+       if ((auth->user_name == NULL) || (auth->domain == NULL)) {
+               *perr = NT_STATUS_NO_MEMORY;
+               TALLOC_FREE(result);
+               return NULL;
+       }
+
        *perr = rpc_pipe_bind(result, auth);
        if (!NT_STATUS_IS_OK(*perr)) {
                int lvl = 0;