diff options
author | Stefan Metzmacher <metze@samba.org> | 2019-07-16 14:03:57 +0200 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2019-09-11 19:59:34 +0000 |
commit | b6cf33015de596cd4295d24da4cfcee6c437e3aa (patch) | |
tree | 2e164f7cf0b276bf80467b3bfeed38c57a735aea | |
parent | 5a736db046d1922e2b7ad13baf38c42b46f2115d (diff) | |
download | samba-b6cf33015de596cd4295d24da4cfcee6c437e3aa.tar.gz |
smbd: inline change_to_user_and_service() into become_user()
In the next commit we'll drop the _and_service() part.
Pair-Programmed-With: Ralph Boehme <slow@samba.org>
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
-rw-r--r-- | source3/smbd/uid.c | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/source3/smbd/uid.c b/source3/smbd/uid.c index 913e9f30b00..5b0afcb1e9a 100644 --- a/source3/smbd/uid.c +++ b/source3/smbd/uid.c @@ -661,8 +661,24 @@ void smbd_unbecome_root(void) bool become_user(connection_struct *conn, uint64_t vuid) { + struct user_struct *vuser; + int snum = SNUM(conn); bool ok; + if (conn == NULL) { + DBG_WARNING("Connection not open\n"); + return false; + } + + vuser = get_valid_user_struct(conn->sconn, vuid); + if (vuser == NULL) { + /* Invalid vuid sent */ + DBG_WARNING("Invalid vuid %llu used on share %s.\n", + (unsigned long long)vuid, + lp_const_servicename(snum)); + return false; + } + ok = push_sec_ctx(); if (!ok) { return false; @@ -670,7 +686,7 @@ bool become_user(connection_struct *conn, uint64_t vuid) push_conn_ctx(); - ok = change_to_user_and_service(conn, vuid); + ok = change_to_user_internal(conn, vuser->session_info, vuid); if (!ok) { pop_sec_ctx(); pop_conn_ctx(); |