summaryrefslogtreecommitdiff
path: root/source4/rpc_server
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2015-11-10 10:25:10 +0100
committerStefan Metzmacher <metze@samba.org>2016-03-10 10:15:21 +0100
commit645e777b0aca7d997867e0b3f0b48bfb138cc25c (patch)
tree09dd021b1a243dd0c1d110296a0d1ac726ae20e5 /source4/rpc_server
parent58b33896b65c5b51486eaf01f5f935ace2369fd0 (diff)
downloadsamba-645e777b0aca7d997867e0b3f0b48bfb138cc25c.tar.gz
s4:rpc_server: dcesrv_generic_session_key should only work on local transports
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
Diffstat (limited to 'source4/rpc_server')
-rw-r--r--source4/rpc_server/common/reply.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/source4/rpc_server/common/reply.c b/source4/rpc_server/common/reply.c
index 59c289cf797..93bce7af08a 100644
--- a/source4/rpc_server/common/reply.c
+++ b/source4/rpc_server/common/reply.c
@@ -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);
}