[PATCH] ref_tracker: Handling kmalloc() allocation failure in __ref_tracker_dir_pr_ostream()

Zqiang posted 1 patch 5 days, 13 hours ago
lib/ref_tracker.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
[PATCH] ref_tracker: Handling kmalloc() allocation failure in __ref_tracker_dir_pr_ostream()
Posted by Zqiang 5 days, 13 hours ago
The kmalloc() maybe fail to allocate, causing sbuf to be null. this
commit therefore free stats memory and exit function when the sbuf
is null.

Signed-off-by: Zqiang <qiang.zhang@linux.dev>
---
 lib/ref_tracker.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/lib/ref_tracker.c b/lib/ref_tracker.c
index a9e6ffcff04b..a822de2b691e 100644
--- a/lib/ref_tracker.c
+++ b/lib/ref_tracker.c
@@ -160,6 +160,8 @@ __ref_tracker_dir_pr_ostream(struct ref_tracker_dir *dir,
 	}
 
 	sbuf = kmalloc(STACK_BUF_SIZE, GFP_NOWAIT | __GFP_NOWARN);
+	if (!sbuf)
+		goto end;
 
 	for (i = 0, skipped = stats->total; i < stats->count; ++i) {
 		stack = stats->stacks[i].stack_handle;
@@ -176,7 +178,7 @@ __ref_tracker_dir_pr_ostream(struct ref_tracker_dir *dir,
 			   s->prefix, dir->class, dir, skipped, stats->total);
 
 	kfree(sbuf);
-
+end:
 	kfree(stats);
 }
 
-- 
2.17.1
Re: [PATCH] ref_tracker: Handling kmalloc() allocation failure in __ref_tracker_dir_pr_ostream()
Posted by Eric Dumazet 5 days, 13 hours ago
On Fri, Sep 26, 2025 at 1:35 AM Zqiang <qiang.zhang@linux.dev> wrote:
>
> The kmalloc() maybe fail to allocate, causing sbuf to be null. this
> commit therefore free stats memory and exit function when the sbuf
> is null.
>
> Signed-off-by: Zqiang <qiang.zhang@linux.dev>

I think you forgot a Fixes: tag ?

Anyway, current code handles this case just fine, so your patch would
reduce the output of useful debug information.

Thank you.