summaryrefslogtreecommitdiff
path: root/fs/ksmbd
diff options
context:
space:
mode:
authorHyunchul Lee <hyc.lee@gmail.com>2021-07-09 11:06:34 +0300
committerNamjae Jeon <namjae.jeon@samsung.com>2021-07-10 10:24:00 +0300
commit21dd1fd6d718ac59841c3ee3d0b1d82508ef24dc (patch)
tree417930f37b520f829d1c646d69022e8ea96a2f2b /fs/ksmbd
parentce154c32af3c60727171ff28ae97bcceda63b1c6 (diff)
downloadlinux-21dd1fd6d718ac59841c3ee3d0b1d82508ef24dc.tar.xz
ksmbd: handle error cases first in smb2_create_sd_buffers
For code cleanup, handle error cases first in smb2_create_sd_buffers(). Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Hyunchul Lee <hyc.lee@gmail.com> Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com> Signed-off-by: Steve French <stfrench@microsoft.com>
Diffstat (limited to 'fs/ksmbd')
-rw-r--r--fs/ksmbd/smb2pdu.c24
1 files changed, 11 insertions, 13 deletions
diff --git a/fs/ksmbd/smb2pdu.c b/fs/ksmbd/smb2pdu.c
index af33d4f95d44..2e266a9d3935 100644
--- a/fs/ksmbd/smb2pdu.c
+++ b/fs/ksmbd/smb2pdu.c
@@ -2319,25 +2319,23 @@ static int smb2_create_sd_buffer(struct ksmbd_work *work,
struct path *path)
{
struct create_context *context;
- int rc = -ENOENT;
+ struct create_sd_buf_req *sd_buf;
if (!req->CreateContextsOffset)
- return rc;
+ return -ENOENT;
/* Parse SD BUFFER create contexts */
context = smb2_find_context_vals(req, SMB2_CREATE_SD_BUFFER);
- if (context && !IS_ERR(context)) {
- struct create_sd_buf_req *sd_buf;
-
- ksmbd_debug(SMB,
- "Set ACLs using SMB2_CREATE_SD_BUFFER context\n");
- sd_buf = (struct create_sd_buf_req *)context;
- rc = set_info_sec(work->conn, work->tcon,
- path, &sd_buf->ntsd,
- le32_to_cpu(sd_buf->ccontext.DataLength), true);
- }
+ if (!context)
+ return -ENOENT;
+ else if (IS_ERR(context))
+ return PTR_ERR(context);
- return rc;
+ ksmbd_debug(SMB,
+ "Set ACLs using SMB2_CREATE_SD_BUFFER context\n");
+ sd_buf = (struct create_sd_buf_req *)context;
+ return set_info_sec(work->conn, work->tcon, path, &sd_buf->ntsd,
+ le32_to_cpu(sd_buf->ccontext.DataLength), true);
}
static void ksmbd_acls_fattr(struct smb_fattr *fattr, struct inode *inode)