* [PATCH v2] fs/ntfs3: Fix memory and resource leak in indx_find_sort [not found] <17914287-640d-4500-b519-5f3d3aed2878@web.de> @ 2026-01-18 18:57 ` Jiasheng Jiang 2026-01-19 6:37 ` Greg KH 2026-01-19 10:00 ` Markus Elfring 0 siblings, 2 replies; 3+ messages in thread From: Jiasheng Jiang @ 2026-01-18 18:57 UTC (permalink / raw) To: markus.elfring Cc: almaz.alexandrovich, jiashengjiangcool, linux-kernel, ntfs3, stable The function indx_find_sort() incorrectly uses kfree(n) to cleanup the 'struct indx_node' instance in error paths. The 'struct indx_node' is a container that manages internal allocations (n->index) and holds a reference to a buffer head (n->nb). Using kfree() directly on the node pointer only frees the container itself, resulting in a memory leak of the index buffer and a resource leak of the buffer head reference. This patch replaces the incorrect kfree(n) calls with the specialized helper put_indx_node(n), which correctly releases the internal resources and the buffer head, consistent with other functions like indx_find_raw(). Fixes: 82cae269cfa9 ("fs/ntfs3: Add initialization of super block") Signed-off-by: Jiasheng Jiang <jiashengjiangcool@gmail.com> --- Changelog: v1 -> v2: 1. Add a Fixes tag. --- fs/ntfs3/index.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fs/ntfs3/index.c b/fs/ntfs3/index.c index 7157cfd70fdc..c598b4b2f454 100644 --- a/fs/ntfs3/index.c +++ b/fs/ntfs3/index.c @@ -1248,7 +1248,7 @@ int indx_find_sort(struct ntfs_index *indx, struct ntfs_inode *ni, sizeof(struct NTFS_DE) + sizeof(u64)) { if (n) { fnd_pop(fnd); - kfree(n); + put_indx_node(n); } return -EINVAL; } @@ -1261,7 +1261,7 @@ int indx_find_sort(struct ntfs_index *indx, struct ntfs_inode *ni, /* Try next level. */ e = hdr_first_de(&n->index->ihdr); if (!e) { - kfree(n); + put_indx_node(n); return -EINVAL; } @@ -1281,7 +1281,7 @@ int indx_find_sort(struct ntfs_index *indx, struct ntfs_inode *ni, /* Pop one level. */ if (n) { fnd_pop(fnd); - kfree(n); + put_indx_node(n); } level = fnd->level; -- 2.25.1 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH v2] fs/ntfs3: Fix memory and resource leak in indx_find_sort 2026-01-18 18:57 ` [PATCH v2] fs/ntfs3: Fix memory and resource leak in indx_find_sort Jiasheng Jiang @ 2026-01-19 6:37 ` Greg KH 2026-01-19 10:00 ` Markus Elfring 1 sibling, 0 replies; 3+ messages in thread From: Greg KH @ 2026-01-19 6:37 UTC (permalink / raw) To: Jiasheng Jiang Cc: markus.elfring, almaz.alexandrovich, linux-kernel, ntfs3, stable On Sun, Jan 18, 2026 at 06:57:36PM +0000, Jiasheng Jiang wrote: > The function indx_find_sort() incorrectly uses kfree(n) to cleanup the > 'struct indx_node' instance in error paths. > > The 'struct indx_node' is a container that manages internal allocations > (n->index) and holds a reference to a buffer head (n->nb). Using kfree() > directly on the node pointer only frees the container itself, resulting > in a memory leak of the index buffer and a resource leak of the buffer > head reference. > > This patch replaces the incorrect kfree(n) calls with the specialized > helper put_indx_node(n), which correctly releases the internal resources > and the buffer head, consistent with other functions like indx_find_raw(). > > Fixes: 82cae269cfa9 ("fs/ntfs3: Add initialization of super block") > Signed-off-by: Jiasheng Jiang <jiashengjiangcool@gmail.com> > --- > Changelog: > > v1 -> v2: > > 1. Add a Fixes tag. > --- > fs/ntfs3/index.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/fs/ntfs3/index.c b/fs/ntfs3/index.c > index 7157cfd70fdc..c598b4b2f454 100644 > --- a/fs/ntfs3/index.c > +++ b/fs/ntfs3/index.c > @@ -1248,7 +1248,7 @@ int indx_find_sort(struct ntfs_index *indx, struct ntfs_inode *ni, > sizeof(struct NTFS_DE) + sizeof(u64)) { > if (n) { > fnd_pop(fnd); > - kfree(n); > + put_indx_node(n); > } > return -EINVAL; > } > @@ -1261,7 +1261,7 @@ int indx_find_sort(struct ntfs_index *indx, struct ntfs_inode *ni, > /* Try next level. */ > e = hdr_first_de(&n->index->ihdr); > if (!e) { > - kfree(n); > + put_indx_node(n); > return -EINVAL; > } > > @@ -1281,7 +1281,7 @@ int indx_find_sort(struct ntfs_index *indx, struct ntfs_inode *ni, > /* Pop one level. */ > if (n) { > fnd_pop(fnd); > - kfree(n); > + put_indx_node(n); > } > > level = fnd->level; > -- > 2.25.1 > > <formletter> This is not the correct way to submit patches for inclusion in the stable kernel tree. Please read: https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html for how to do this properly. </formletter> ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH v2] fs/ntfs3: Fix memory and resource leak in indx_find_sort 2026-01-18 18:57 ` [PATCH v2] fs/ntfs3: Fix memory and resource leak in indx_find_sort Jiasheng Jiang 2026-01-19 6:37 ` Greg KH @ 2026-01-19 10:00 ` Markus Elfring 1 sibling, 0 replies; 3+ messages in thread From: Markus Elfring @ 2026-01-19 10:00 UTC (permalink / raw) To: Jiasheng Jiang, ntfs3; +Cc: stable, kernel-janitors, LKML, Konstantin Komarov … > This patch replaces the incorrect kfree(n) calls … Thanks for another contribution. * Under which circumstances would you take the usage of imperative mood better into account for an improved change description? https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/submitting-patches.rst?h=v6.19-rc5#n94 * Can it be helpful to append parentheses to function names (also in the summary phrase)? Regards, Markus ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-01-19 10:00 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <17914287-640d-4500-b519-5f3d3aed2878@web.de>
2026-01-18 18:57 ` [PATCH v2] fs/ntfs3: Fix memory and resource leak in indx_find_sort Jiasheng Jiang
2026-01-19 6:37 ` Greg KH
2026-01-19 10:00 ` Markus Elfring
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox