diff options
author | Ralph Boehme <slow@samba.org> | 2021-01-23 18:36:23 +0100 |
---|---|---|
committer | Karolin Seeger <kseeger@samba.org> | 2021-02-01 08:47:05 +0000 |
commit | f6e5fe6f122f85dda46872045cbc4cb020b399b9 (patch) | |
tree | d15f069a86d04fdd98a19e134961466f45866d17 | |
parent | ba12f0c3ae02d002435ecbb32ac018f8eb821691 (diff) | |
download | samba-f6e5fe6f122f85dda46872045cbc4cb020b399b9.tar.gz |
smbd: use fsp->conn->session_info for the initial delete-on-close token
There's a correctly set up session_info at fsp->conn->session_info, we can just
use that.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=14617
Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Tue Jan 26 04:04:14 UTC 2021 on sn-devel-184
(cherry picked from commit e06f86bbd93d024c70016e1adcf833db85742aca)
Autobuild-User(v4-13-test): Karolin Seeger <kseeger@samba.org>
Autobuild-Date(v4-13-test): Mon Feb 1 08:47:05 UTC 2021 on sn-devel-184
-rw-r--r-- | selftest/knownfail.d/samba3.blackbox.force-user-unlink | 1 | ||||
-rw-r--r-- | source3/smbd/close.c | 25 |
2 files changed, 4 insertions, 22 deletions
diff --git a/selftest/knownfail.d/samba3.blackbox.force-user-unlink b/selftest/knownfail.d/samba3.blackbox.force-user-unlink deleted file mode 100644 index 6761bd8cb61..00000000000 --- a/selftest/knownfail.d/samba3.blackbox.force-user-unlink +++ /dev/null @@ -1 +0,0 @@ -^samba3.blackbox.force-user-unlink.test_forced_user_can_delete\(maptoguest:local\) diff --git a/source3/smbd/close.c b/source3/smbd/close.c index 9974877edc2..43762555b35 100644 --- a/source3/smbd/close.c +++ b/source3/smbd/close.c @@ -341,21 +341,13 @@ static NTSTATUS close_remove_share_mode(files_struct *fsp, if (fsp->fsp_flags.initial_delete_on_close && !is_delete_on_close_set(lck, fsp->name_hash)) { - struct auth_session_info *session_info = NULL; - /* Initial delete on close was set and no one else * wrote a real delete on close. */ - status = smbXsrv_session_info_lookup(conn->sconn->client, - fsp->vuid, - &session_info); - if (!NT_STATUS_IS_OK(status)) { - return NT_STATUS_INTERNAL_ERROR; - } fsp->fsp_flags.delete_on_close = true; set_delete_on_close_lck(fsp, lck, - session_info->security_token, - session_info->unix_token); + fsp->conn->session_info->security_token, + fsp->conn->session_info->unix_token); } delete_file = is_delete_on_close_set(lck, fsp->name_hash) && @@ -1176,24 +1168,15 @@ static NTSTATUS close_directory(struct smb_request *req, files_struct *fsp, } if (fsp->fsp_flags.initial_delete_on_close) { - struct auth_session_info *session_info = NULL; - /* Initial delete on close was set - for * directories we don't care if anyone else * wrote a real delete on close. */ - status = smbXsrv_session_info_lookup(fsp->conn->sconn->client, - fsp->vuid, - &session_info); - if (!NT_STATUS_IS_OK(status)) { - return NT_STATUS_INTERNAL_ERROR; - } - send_stat_cache_delete_message(fsp->conn->sconn->msg_ctx, fsp->fsp_name->base_name); set_delete_on_close_lck(fsp, lck, - session_info->security_token, - session_info->unix_token); + fsp->conn->session_info->security_token, + fsp->conn->session_info->unix_token); fsp->fsp_flags.delete_on_close = true; } |