]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s4:rpc_server: dcesrv_generic_session_key should only work on local transports
authorStefan Metzmacher <metze@samba.org>
Tue, 10 Nov 2015 09:25:10 +0000 (10:25 +0100)
committerStefan Metzmacher <metze@samba.org>
Thu, 10 Mar 2016 09:15:21 +0000 (10:15 +0100)
This matches modern Windows servers.

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Günther Deschner <gd@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Autobuild-User(master): Stefan Metzmacher <metze@samba.org>
Autobuild-Date(master): Thu Mar 10 10:15:21 CET 2016 on sn-devel-144

source4/rpc_server/common/reply.c

index 59c289cf79785d6821af1f22f75cf3e450bb5b4a..93bce7af08a9e438bed3d04b093f19a640819a17 100644 (file)
@@ -259,5 +259,12 @@ _PUBLIC_ NTSTATUS dcesrv_reply(struct dcesrv_call_state *call)
 NTSTATUS dcesrv_generic_session_key(struct dcesrv_connection *c,
                                    DATA_BLOB *session_key)
 {
+       enum dcerpc_transport_t transport =
+               dcerpc_binding_get_transport(c->endpoint->ep_description);
+
+       if (transport != NCALRPC && transport != NCACN_UNIX_STREAM) {
+               return NT_STATUS_NO_USER_SESSION_KEY;
+       }
+
        return dcerpc_generic_session_key(NULL, session_key);
 }