summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Adam <obnox@samba.org>2015-05-08 23:15:51 +0200
committerMichael Adam <obnox@samba.org>2015-07-29 18:26:07 +0200
commitc765d11347048c46dc0e1cb5cc1e0da747b73524 (patch)
tree197c2b4c5f79e6c91d9636958c703540b3a57e9c
parent66bf0e51bc864d87ef1db5b52dd54da28b75af52 (diff)
downloadsamba-c765d11347048c46dc0e1cb5cc1e0da747b73524.tar.gz
smbXsrv: add a smbXsrv_connection argument to smb2srv_session_lookup_raw
This way, we can verify that the session is valid on a channel. Pair-Programmed-With: Stefan Metzmacher <metze@samba.org> Signed-off-by: Michael Adam <obnox@samba.org> Signed-off-by: Stefan Metzmacher <metze@samba.org>
-rw-r--r--source3/smbd/smbXsrv_session.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/source3/smbd/smbXsrv_session.c b/source3/smbd/smbXsrv_session.c
index 256d8203a56..12cc43e7f24 100644
--- a/source3/smbd/smbXsrv_session.c
+++ b/source3/smbd/smbXsrv_session.c
@@ -52,6 +52,8 @@ struct smbXsrv_session_table {
};
static NTSTATUS smb2srv_session_lookup_raw(struct smbXsrv_session_table *table,
+ /* conn: optional */
+ struct smbXsrv_connection *conn,
uint64_t session_id, NTTIME now,
struct smbXsrv_session **session);
@@ -281,6 +283,7 @@ static void smbXsrv_session_close_loop(struct tevent_req *subreq)
}
status = smb2srv_session_lookup_raw(client->session_table,
+ NULL, /* smbXsrv_connection */
close_info0->old_session_wire_id,
now, &session);
if (NT_STATUS_EQUAL(status, NT_STATUS_USER_SESSION_DELETED)) {
@@ -1748,6 +1751,8 @@ NTSTATUS smb2srv_session_table_init(struct smbXsrv_connection *conn)
}
static NTSTATUS smb2srv_session_lookup_raw(struct smbXsrv_session_table *table,
+ /* conn: optional */
+ struct smbXsrv_connection *conn,
uint64_t session_id, NTTIME now,
struct smbXsrv_session **session)
{
@@ -1758,7 +1763,7 @@ static NTSTATUS smb2srv_session_lookup_raw(struct smbXsrv_session_table *table,
return NT_STATUS_USER_SESSION_DELETED;
}
- return smbXsrv_session_local_lookup(table, NULL, local_id, now,
+ return smbXsrv_session_local_lookup(table, conn, local_id, now,
session);
}
@@ -1767,7 +1772,8 @@ NTSTATUS smb2srv_session_lookup(struct smbXsrv_connection *conn,
struct smbXsrv_session **session)
{
struct smbXsrv_session_table *table = conn->client->session_table;
- return smb2srv_session_lookup_raw(table, session_id, now, session);
+ return smb2srv_session_lookup_raw(table, conn, session_id, now,
+ session);
}
struct smbXsrv_session_global_traverse_state {