From: Jeremy Allison Date: Wed, 2 Jun 2021 20:37:30 +0000 (-0700) Subject: s3: smbd: reply_setatr(), smbd_check_access_rights() -> smbd_check_access_rights_fsp(). X-Git-Tag: tevent-0.11.0~583 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b8ef83e1f92afe7d698edcb8259272becdb3ba9c;p=thirdparty%2Fsamba.git s3: smbd: reply_setatr(), smbd_check_access_rights() -> smbd_check_access_rights_fsp(). Signed-off-by: Jeremy Allison Reviewed-by: Ralph Boehme --- diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c index 6168ffc4610..44747408256 100644 --- a/source3/smbd/reply.c +++ b/source3/smbd/reply.c @@ -1492,6 +1492,12 @@ void reply_setatr(struct smb_request *req) goto out; } + if (smb_fname->fsp == NULL) { + /* Can't set access rights on a symlink. */ + reply_nterror(req, NT_STATUS_ACCESS_DENIED); + goto out; + } + mode = SVAL(req->vwv+0, 0); mtime = srv_make_unix_date3(req->vwv+1); @@ -1501,9 +1507,7 @@ void reply_setatr(struct smb_request *req) else mode &= ~FILE_ATTRIBUTE_DIRECTORY; - status = smbd_check_access_rights(conn, - conn->cwd_fsp, - smb_fname, + status = smbd_check_access_rights_fsp(smb_fname->fsp, false, FILE_WRITE_ATTRIBUTES); if (!NT_STATUS_IS_OK(status)) {