FAILED: patch "[PATCH] mm, slub: fix two bugs in slab_debug_trace_open()" failed to apply to 5.14-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 5.14-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 2127d22509aec3a83dffb2a3c736df7ba747a7ce Mon Sep 17 00:00:00 2001
From: Miaohe Lin <[email protected]>
Date: Mon, 18 Oct 2021 15:15:52 -0700
Subject: [PATCH] mm, slub: fix two bugs in slab_debug_trace_open()
Patch series "Fixups for slub".
This series contains various bug fixes for slub. We fix memoryleak, use-afer-free, NULL pointer dereferencing and so on in slub. More details can be found in the respective changelogs.
This patch (of 5):
It's possible that __seq_open_private() will return NULL. So we should check it before using lest dereferencing NULL pointer. And in error paths, we forgot to release private buffer via seq_release_private(). Memory will leak in these paths.
mm/slub.c +7 -1
@@ -6108,9 +6108,14 @@ static int slab_debug_trace_open(struct inode *inode, struct file *filep)struct kmem_cache *s =file_inode (filep)->i_private;unsigned long *obj_map; +if (!t) +return -ENOMEM ; + obj_map =bitmap_alloc (oo_objects (s->oo),GFP_KERNEL ); -if (!obj_map) +if (!obj_map) { +seq_release_private (inode, filep);return -ENOMEM ; + }if (strcmp (filep->f_path.dentry->d_name.name,"alloc_traces" ) ==0 ) alloc =TRACK_ALLOC ;
@@ -6119,6 +6124,7 @@ static int slab_debug_trace_open(struct inode *inode, struct file *filep)if (!alloc_loc_track (t,PAGE_SIZE /sizeof (struct location ),GFP_KERNEL )) {bitmap_free (obj_map); +seq_release_private (inode, filep);return -ENOMEM ; }