diff options
author | Jeremy Allison <jra@samba.org> | 2011-11-04 15:39:55 -0700 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2011-11-04 15:39:55 -0700 |
commit | 48512193338663df5dc4cd52179bc94337eb7113 (patch) | |
tree | 5c5511b80437522599f1ccd44e02ead89fdfcd0a | |
parent | a30f84a21c9d4e702ae0faace9bdf435b9882af7 (diff) | |
download | samba-48512193338663df5dc4cd52179bc94337eb7113.tar.gz samba-48512193338663df5dc4cd52179bc94337eb7113.tar.bz2 samba-48512193338663df5dc4cd52179bc94337eb7113.zip |
Add const to the smb_filename argument of smbd_check_access_rights().
-rw-r--r-- | source3/smbd/file_access.c | 18 | ||||
-rw-r--r-- | source3/smbd/open.c | 4 | ||||
-rw-r--r-- | source3/smbd/proto.h | 4 |
3 files changed, 9 insertions, 17 deletions
diff --git a/source3/smbd/file_access.c b/source3/smbd/file_access.c index 74855649ea..c2203673f3 100644 --- a/source3/smbd/file_access.c +++ b/source3/smbd/file_access.c @@ -80,7 +80,7 @@ bool can_access_file_acl(struct connection_struct *conn, ****************************************************************************/ bool can_delete_file_in_directory(connection_struct *conn, - struct smb_filename *smb_fname) + const struct smb_filename *smb_fname) { TALLOC_CTX *ctx = talloc_tos(); char *dname = NULL; @@ -130,18 +130,10 @@ bool can_delete_file_in_directory(connection_struct *conn, /* sticky bit means delete only by owner of file or by root or * by owner of directory. */ if (smb_fname_parent->st.st_ex_mode & S_ISVTX) { - if(SMB_VFS_STAT(conn, smb_fname) != 0) { - if (errno == ENOENT) { - /* If the file doesn't already exist then - * yes we'll be able to delete it. */ - ret = true; - goto out; - } - DEBUG(10,("can_delete_file_in_directory: can't " - "stat file %s (%s)", - smb_fname_str_dbg(smb_fname), - strerror(errno) )); - ret = false; + if (!VALID_STAT(smb_fname->st)) { + /* If the file doesn't already exist then + * yes we'll be able to delete it. */ + ret = true; goto out; } diff --git a/source3/smbd/open.c b/source3/smbd/open.c index bd022ecd59..2f79908b62 100644 --- a/source3/smbd/open.c +++ b/source3/smbd/open.c @@ -44,7 +44,7 @@ struct deferred_open_record { ****************************************************************************/ static bool parent_override_delete(connection_struct *conn, - struct smb_filename *smb_fname, + const struct smb_filename *smb_fname, uint32_t access_mask, uint32_t rejected_mask) { @@ -61,7 +61,7 @@ static bool parent_override_delete(connection_struct *conn, ****************************************************************************/ NTSTATUS smbd_check_access_rights(struct connection_struct *conn, - struct smb_filename *smb_fname, + const struct smb_filename *smb_fname, uint32_t access_mask) { /* Check if we have rights to open. */ diff --git a/source3/smbd/proto.h b/source3/smbd/proto.h index ff56b15dd0..0b7c28fb91 100644 --- a/source3/smbd/proto.h +++ b/source3/smbd/proto.h @@ -307,7 +307,7 @@ bool can_access_file_acl(struct connection_struct *conn, const struct smb_filename *smb_fname, uint32_t access_mask); bool can_delete_file_in_directory(connection_struct *conn, - struct smb_filename *smb_fname); + const struct smb_filename *smb_fname); bool can_access_file_data(connection_struct *conn, const struct smb_filename *smb_fname, uint32 access_mask); @@ -581,7 +581,7 @@ void reply_nttranss(struct smb_request *req); /* The following definitions come from smbd/open.c */ NTSTATUS smbd_check_access_rights(struct connection_struct *conn, - struct smb_filename *smb_fname, + const struct smb_filename *smb_fname, uint32_t access_mask); NTSTATUS fd_close(files_struct *fsp); void change_file_owner_to_parent(connection_struct *conn, |