mirror of
https://github.com/samba-team/samba.git
synced 2025-02-24 13:57:43 +03:00
RPC sessions on np connections need the real session key transferred
This commit is contained in:
parent
09bc3a2f9c
commit
3080fd6624
@ -251,8 +251,8 @@ _PUBLIC_ NTSTATUS dcesrv_interface_register(struct dcesrv_context *dce_ctx,
|
|||||||
return NT_STATUS_OK;
|
return NT_STATUS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static NTSTATUS dcesrv_inherited_session_key(struct dcesrv_connection *p,
|
NTSTATUS dcesrv_inherited_session_key(struct dcesrv_connection *p,
|
||||||
DATA_BLOB *session_key)
|
DATA_BLOB *session_key)
|
||||||
{
|
{
|
||||||
if (p->auth_state.session_info->session_key.length) {
|
if (p->auth_state.session_info->session_key.length) {
|
||||||
*session_key = p->auth_state.session_info->session_key;
|
*session_key = p->auth_state.session_info->session_key;
|
||||||
|
@ -27,6 +27,7 @@
|
|||||||
#include "auth/gensec/gensec.h"
|
#include "auth/gensec/gensec.h"
|
||||||
#include "../lib/util/dlinklist.h"
|
#include "../lib/util/dlinklist.h"
|
||||||
#include "rpc_server/dcerpc_server.h"
|
#include "rpc_server/dcerpc_server.h"
|
||||||
|
#include "rpc_server/dcerpc_server_proto.h"
|
||||||
#include "lib/events/events.h"
|
#include "lib/events/events.h"
|
||||||
#include "smbd/service_task.h"
|
#include "smbd/service_task.h"
|
||||||
#include "smbd/service_stream.h"
|
#include "smbd/service_stream.h"
|
||||||
@ -139,6 +140,10 @@ static void dcesrv_sock_accept(struct stream_connection *srv_conn)
|
|||||||
dcesrv_conn->transport.get_my_addr = dcesrv_sock_get_my_addr;
|
dcesrv_conn->transport.get_my_addr = dcesrv_sock_get_my_addr;
|
||||||
dcesrv_conn->transport.get_peer_addr = dcesrv_sock_get_peer_addr;
|
dcesrv_conn->transport.get_peer_addr = dcesrv_sock_get_peer_addr;
|
||||||
|
|
||||||
|
if (dcesrv_sock->endpoint->ep_description->transport == NCACN_NP) {
|
||||||
|
dcesrv_conn->auth_state.session_key = dcesrv_inherited_session_key;
|
||||||
|
}
|
||||||
|
|
||||||
srv_conn->private = dcesrv_conn;
|
srv_conn->private = dcesrv_conn;
|
||||||
|
|
||||||
irpc_add_name(srv_conn->msg_ctx, "rpc_server");
|
irpc_add_name(srv_conn->msg_ctx, "rpc_server");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user