summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGünther Deschner <gd@samba.org>2011-04-30 00:37:05 +0200
committerKarolin Seeger <kseeger@samba.org>2011-05-17 09:17:40 +0200
commit83583349ffe6fc79b7b0e69c3691025bcfc87d46 (patch)
tree15159cac9d4db9eb3619ed0243415455139f123d
parent7039fbebe36978645969d2c1dd7a7e59f1e452f1 (diff)
downloadsamba-83583349ffe6fc79b7b0e69c3691025bcfc87d46.tar.gz
samba-83583349ffe6fc79b7b0e69c3691025bcfc87d46.tar.xz
samba-83583349ffe6fc79b7b0e69c3691025bcfc87d46.zip
s3-smbd: avoid using pipes_struct when only session_info is needed.
Guenther (cherry picked from commit 61cd1067efacd91e22b4acbdf0d1d92dc2efc162) (cherry picked from commit 3fe82d0152f9760326e905516c6959fb4b9973e5)
-rw-r--r--source3/rpc_server/srv_pipe.c2
-rw-r--r--source3/smbd/proto.h2
-rw-r--r--source3/smbd/uid.c9
3 files changed, 6 insertions, 7 deletions
diff --git a/source3/rpc_server/srv_pipe.c b/source3/rpc_server/srv_pipe.c
index 73a34866b20..a608a4f4afd 100644
--- a/source3/rpc_server/srv_pipe.c
+++ b/source3/rpc_server/srv_pipe.c
@@ -1559,7 +1559,7 @@ static bool api_pipe_request(struct pipes_struct *p,
((p->auth.auth_type == DCERPC_AUTH_TYPE_NTLMSSP) ||
(p->auth.auth_type == DCERPC_AUTH_TYPE_KRB5) ||
(p->auth.auth_type == DCERPC_AUTH_TYPE_SPNEGO))) {
- if(!become_authenticated_pipe_user(p)) {
+ if(!become_authenticated_pipe_user(p->session_info)) {
data_blob_free(&p->out_data.rdata);
return False;
}
diff --git a/source3/smbd/proto.h b/source3/smbd/proto.h
index e7dd7f39a23..31defc65c9e 100644
--- a/source3/smbd/proto.h
+++ b/source3/smbd/proto.h
@@ -1056,7 +1056,7 @@ bool change_to_user(connection_struct *conn, uint16 vuid);
bool change_to_user_by_session(connection_struct *conn,
const struct auth_serversupplied_info *session_info);
bool change_to_root_user(void);
-bool become_authenticated_pipe_user(struct pipes_struct *p);
+bool become_authenticated_pipe_user(struct auth_serversupplied_info *session_info);
bool unbecome_authenticated_pipe_user(void);
void become_root(void);
void unbecome_root(void);
diff --git a/source3/smbd/uid.c b/source3/smbd/uid.c
index b554b36054b..7b04713bab6 100644
--- a/source3/smbd/uid.c
+++ b/source3/smbd/uid.c
@@ -25,7 +25,6 @@
#include "libcli/security/security.h"
#include "passdb/lookup_sid.h"
#include "auth.h"
-#include "ntdomain.h"
/* what user is current? */
extern struct current_user current_user;
@@ -409,14 +408,14 @@ bool change_to_root_user(void)
user. Doesn't modify current_user.
****************************************************************************/
-bool become_authenticated_pipe_user(struct pipes_struct *p)
+bool become_authenticated_pipe_user(struct auth_serversupplied_info *session_info)
{
if (!push_sec_ctx())
return False;
- set_sec_ctx(p->session_info->utok.uid, p->session_info->utok.gid,
- p->session_info->utok.ngroups, p->session_info->utok.groups,
- p->session_info->security_token);
+ set_sec_ctx(session_info->utok.uid, session_info->utok.gid,
+ session_info->utok.ngroups, session_info->utok.groups,
+ session_info->security_token);
return True;
}