From: Dawei Li <set_pte_at@outlook.com>
To: linkinjeon@kernel.org, sfrench@samba.org
Cc: senozhatsky@chromium.org, tom@talpey.com, hyc.lee@gmail.com,
linux-cifs@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH 5/6] ksmbd: improve exception handling and avoid redundant sanity check in loop
Date: Sun, 15 Jan 2023 18:32:08 +0800 [thread overview]
Message-ID: <TYCP286MB23233D324DE28E57E376228ECAC09@TYCP286MB2323.JPNP286.PROD.OUTLOOK.COM> (raw)
In-Reply-To: <20230115103209.146002-1-set_pte_at@outlook.com>
1. Sanity check on validity of hook is supposed to be static,
move it from looping.
2. If exception occurs after kvmalloc(), kvfree() is supposed
to reclaim memory to avoid mem leak.
Signed-off-by: Dawei Li <set_pte_at@outlook.com>
---
fs/ksmbd/connection.c | 20 ++++++++++++--------
1 file changed, 12 insertions(+), 8 deletions(-)
diff --git a/fs/ksmbd/connection.c b/fs/ksmbd/connection.c
index 36d1da273edd..b302de5db990 100644
--- a/fs/ksmbd/connection.c
+++ b/fs/ksmbd/connection.c
@@ -287,6 +287,12 @@ int ksmbd_conn_handler_loop(void *p)
mutex_init(&conn->srv_mutex);
__module_get(THIS_MODULE);
+ if (unlikely(!default_conn_ops.process_fn)) {
+ pr_err("No connection request callback\n");
+ module_put(THIS_MODULE);
+ return -EINVAL;
+ }
+
if (t->ops->prepare && t->ops->prepare(t))
goto out;
@@ -324,8 +330,10 @@ int ksmbd_conn_handler_loop(void *p)
break;
memcpy(conn->request_buf, hdr_buf, sizeof(hdr_buf));
- if (!ksmbd_smb_request(conn))
+ if (!ksmbd_smb_request(conn)) {
+ pr_err("Invalid smb request\n");
break;
+ }
/*
* We already read 4 bytes to find out PDU size, now
@@ -343,22 +351,18 @@ int ksmbd_conn_handler_loop(void *p)
continue;
}
- if (!default_conn_ops.process_fn) {
- pr_err("No connection request callback\n");
- break;
- }
-
if (default_conn_ops.process_fn(conn)) {
pr_err("Cannot handle request\n");
break;
}
}
+ kvfree(conn->request_buf);
+ conn->request_buf = NULL;
out:
- /* Wait till all reference dropped to the Server object*/
+ /* Wait till all reference dropped to the Server object */
wait_event(conn->r_count_q, atomic_read(&conn->r_count) == 0);
-
if (IS_ENABLED(CONFIG_UNICODE))
utf8_unload(conn->um);
unload_nls(conn->local_nls);
--
2.25.1
next prev parent reply other threads:[~2023-01-15 10:32 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20230115103209.146002-1-set_pte_at@outlook.com>
2023-01-15 10:32 ` [PATCH 1/6] ksmbd: Implements sess->ksmbd_chann_list as xarray Dawei Li
2023-01-15 10:32 ` [PATCH 2/6] ksmbd: Implements sess->rpc_handle_list " Dawei Li
2023-01-15 10:32 ` [PATCH 3/6] ksmbd: replace rwlock with rcu for concurrenct access on conn list Dawei Li
2023-01-30 4:12 ` Sergey Senozhatsky
2023-01-30 4:15 ` Sergey Senozhatsky
2023-01-30 14:16 ` Dawei Li
2023-01-30 15:43 ` Steve French
2023-01-31 2:39 ` Sergey Senozhatsky
2023-01-15 10:32 ` [PATCH 4/6] ksmbd: Remove duplicated codes Dawei Li
2023-01-15 10:32 ` Dawei Li [this message]
2023-01-16 14:38 ` [PATCH 5/6] ksmbd: improve exception handling and avoid redundant sanity check in loop Namjae Jeon
2023-01-15 10:32 ` [PATCH 6/6] ksmbd: fix typo, syncronous->synchronous Dawei Li
2023-01-31 2:40 ` Sergey Senozhatsky
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=TYCP286MB23233D324DE28E57E376228ECAC09@TYCP286MB2323.JPNP286.PROD.OUTLOOK.COM \
--to=set_pte_at@outlook.com \
--cc=hyc.lee@gmail.com \
--cc=linkinjeon@kernel.org \
--cc=linux-cifs@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=senozhatsky@chromium.org \
--cc=sfrench@samba.org \
--cc=tom@talpey.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®