public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] fs/9p: Improve exception handling in v9fs_session_init()
@ 2023-12-28 20:01 Markus Elfring
  2024-01-08 11:09 ` Dominique Martinet
  0 siblings, 1 reply; 3+ messages in thread
From: Markus Elfring @ 2023-12-28 20:01 UTC (permalink / raw)
  To: v9fs, kernel-janitors, Christian Schönebeck,
	Dominique Martinet, Eric Van Hensbergen, Latchesar Ionkov
  Cc: LKML

From: Markus Elfring <elfring@users.sourceforge.net>
Date: Thu, 28 Dec 2023 20:47:18 +0100

The kfree() function was called in up to two cases by
the v9fs_session_init() function during error handling
even if the passed variable contained a null pointer.
This issue was detected by using the Coccinelle software.

* Thus return directly after a call of the function “kstrdup” failed
  at the beginning.

* Adjust jump targets.

* Delete an initialisation (for the variable “rc”)
  which became unnecessary with this refactoring.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
 fs/9p/v9fs.c | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/fs/9p/v9fs.c b/fs/9p/v9fs.c
index 61dbe52bb3a3..874a36303b72 100644
--- a/fs/9p/v9fs.c
+++ b/fs/9p/v9fs.c
@@ -392,15 +392,18 @@ struct p9_fid *v9fs_session_init(struct v9fs_session_info *v9ses,
 		  const char *dev_name, char *data)
 {
 	struct p9_fid *fid;
-	int rc = -ENOMEM;
+	int rc;

 	v9ses->uname = kstrdup(V9FS_DEFUSER, GFP_KERNEL);
 	if (!v9ses->uname)
-		goto err_names;
+		return ERR_PTR(-ENOMEM);

 	v9ses->aname = kstrdup(V9FS_DEFANAME, GFP_KERNEL);
-	if (!v9ses->aname)
-		goto err_names;
+	if (!v9ses->aname) {
+		rc = -ENOMEM;
+		goto free_uname;
+	}
+
 	init_rwsem(&v9ses->rename_sem);

 	v9ses->uid = INVALID_UID;
@@ -489,8 +492,9 @@ struct p9_fid *v9fs_session_init(struct v9fs_session_info *v9ses,
 #endif
 	p9_client_destroy(v9ses->clnt);
 err_names:
-	kfree(v9ses->uname);
 	kfree(v9ses->aname);
+free_uname:
+	kfree(v9ses->uname);
 	return ERR_PTR(rc);
 }

--
2.43.0


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] fs/9p: Improve exception handling in v9fs_session_init()
  2023-12-28 20:01 [PATCH] fs/9p: Improve exception handling in v9fs_session_init() Markus Elfring
@ 2024-01-08 11:09 ` Dominique Martinet
  2024-01-08 12:15   ` Markus Elfring
  0 siblings, 1 reply; 3+ messages in thread
From: Dominique Martinet @ 2024-01-08 11:09 UTC (permalink / raw)
  To: Markus Elfring
  Cc: v9fs, kernel-janitors, Christian Schönebeck,
	Eric Van Hensbergen, Latchesar Ionkov, LKML

Markus Elfring wrote on Thu, Dec 28, 2023 at 09:01:49PM +0100:
> The kfree() function was called in up to two cases by
> the v9fs_session_init() function during error handling
> even if the passed variable contained a null pointer.

I don't see the problem in calling kfree on null things (especially on
error path).

The only bad pattern I see here is that it relies on implicit
knowledge that aname is null before the call (which is true because
v9fs_session_init is only called immediately after kzalloc); is that
what your coccinelle script was checking for?

Anyway, as far as I'm concerned this is more churn than it's worth, but
I'll defer to Eric if he wants to take it.

Thanks,
-- 
Dominique

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: fs/9p: Improve exception handling in v9fs_session_init()
  2024-01-08 11:09 ` Dominique Martinet
@ 2024-01-08 12:15   ` Markus Elfring
  0 siblings, 0 replies; 3+ messages in thread
From: Markus Elfring @ 2024-01-08 12:15 UTC (permalink / raw)
  To: Dominique Martinet, Eric Van Hensbergen, v9fs, kernel-janitors
  Cc: Christian Schönebeck, Latchesar Ionkov, LKML

>> The kfree() function was called in up to two cases by
>> the v9fs_session_init() function during error handling
>> even if the passed variable contained a null pointer.
>
> I don't see the problem in calling kfree on null things (especially on
> error path).

Will you become willing to reduce the number of redundant function calls
for improved exception handling?

Regards,
Markus

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2024-01-08 12:15 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-12-28 20:01 [PATCH] fs/9p: Improve exception handling in v9fs_session_init() Markus Elfring
2024-01-08 11:09 ` Dominique Martinet
2024-01-08 12:15   ` Markus Elfring

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox