mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-25 05:04:09 +08:00
ksmbd: make smb2_find_context_vals return NULL if not found
instead of -ENOENT, make smb2_find_context_vals return NULL if the given context cannot be found. 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>
This commit is contained in:
parent
45a64e8b08
commit
ce154c32af
@ -1472,7 +1472,7 @@ struct create_context *smb2_find_context_vals(void *open_req, const char *tag)
|
||||
next = le32_to_cpu(cc->Next);
|
||||
} while (next != 0);
|
||||
|
||||
return ERR_PTR(-ENOENT);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -2131,7 +2131,7 @@ static inline int check_context_err(void *ctx, char *str)
|
||||
int err;
|
||||
|
||||
err = PTR_ERR(ctx);
|
||||
ksmbd_debug(SMB, "find context %s err %d\n", str, err);
|
||||
ksmbd_debug(SMB, "find context %s err %d\n", str, err ? err : -ENOENT);
|
||||
|
||||
if (err == -EINVAL) {
|
||||
pr_err("bad name length\n");
|
||||
@ -2525,7 +2525,7 @@ int smb2_open(struct ksmbd_work *work)
|
||||
if (req->CreateContextsOffset) {
|
||||
/* Parse non-durable handle create contexts */
|
||||
context = smb2_find_context_vals(req, SMB2_CREATE_EA_BUFFER);
|
||||
if (IS_ERR(context)) {
|
||||
if (IS_ERR_OR_NULL(context)) {
|
||||
rc = check_context_err(context, SMB2_CREATE_EA_BUFFER);
|
||||
if (rc < 0)
|
||||
goto err_out1;
|
||||
@ -2540,7 +2540,7 @@ int smb2_open(struct ksmbd_work *work)
|
||||
|
||||
context = smb2_find_context_vals(req,
|
||||
SMB2_CREATE_QUERY_MAXIMAL_ACCESS_REQUEST);
|
||||
if (IS_ERR(context)) {
|
||||
if (IS_ERR_OR_NULL(context)) {
|
||||
rc = check_context_err(context,
|
||||
SMB2_CREATE_QUERY_MAXIMAL_ACCESS_REQUEST);
|
||||
if (rc < 0)
|
||||
@ -2553,7 +2553,7 @@ int smb2_open(struct ksmbd_work *work)
|
||||
|
||||
context = smb2_find_context_vals(req,
|
||||
SMB2_CREATE_TIMEWARP_REQUEST);
|
||||
if (IS_ERR(context)) {
|
||||
if (IS_ERR_OR_NULL(context)) {
|
||||
rc = check_context_err(context,
|
||||
SMB2_CREATE_TIMEWARP_REQUEST);
|
||||
if (rc < 0)
|
||||
@ -2567,7 +2567,7 @@ int smb2_open(struct ksmbd_work *work)
|
||||
if (tcon->posix_extensions) {
|
||||
context = smb2_find_context_vals(req,
|
||||
SMB2_CREATE_TAG_POSIX);
|
||||
if (IS_ERR(context)) {
|
||||
if (IS_ERR_OR_NULL(context)) {
|
||||
rc = check_context_err(context,
|
||||
SMB2_CREATE_TAG_POSIX);
|
||||
if (rc < 0)
|
||||
@ -2970,7 +2970,7 @@ int smb2_open(struct ksmbd_work *work)
|
||||
|
||||
az_req = (struct create_alloc_size_req *)smb2_find_context_vals(req,
|
||||
SMB2_CREATE_ALLOCATION_SIZE);
|
||||
if (IS_ERR(az_req)) {
|
||||
if (IS_ERR_OR_NULL(az_req)) {
|
||||
rc = check_context_err(az_req,
|
||||
SMB2_CREATE_ALLOCATION_SIZE);
|
||||
if (rc < 0)
|
||||
@ -2992,7 +2992,7 @@ int smb2_open(struct ksmbd_work *work)
|
||||
}
|
||||
|
||||
context = smb2_find_context_vals(req, SMB2_CREATE_QUERY_ON_DISK_ID);
|
||||
if (IS_ERR(context)) {
|
||||
if (IS_ERR_OR_NULL(context)) {
|
||||
rc = check_context_err(context, SMB2_CREATE_QUERY_ON_DISK_ID);
|
||||
if (rc < 0)
|
||||
goto err_out;
|
||||
|
Loading…
Reference in New Issue
Block a user