In the Linux kernel, the following vulnerability has been resolved:
jffs2: fix memory leak in jffs2dofill_super
If jffs2iget() or dmakeroot() in jffs2dofillsuper() returns an error, we can observe the following kmemleak report:
unreferenced object 0xffff888105a65340 (size 64): comm "mount", pid 710, jiffies 4302851558 (age 58.239s) hex dump (first 32 bytes): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ backtrace: [<ffffffff859c45e5>] kmemcachealloctrace+0x475/0x8a0 [<ffffffff86160146>] jffs2suminit+0x96/0x1a0 [<ffffffff86140e25>] jffs2domountfs+0x745/0x2120 [<ffffffff86149fec>] jffs2dofillsuper+0x35c/0x810 [<ffffffff8614aae9>] jffs2fillsuper+0x2b9/0x3b0 [...] unreferenced object 0xffff8881bd7f0000 (size 65536): comm "mount", pid 710, jiffies 4302851558 (age 58.239s) hex dump (first 32 bytes): bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb ................ bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb ................ backtrace: [<ffffffff858579ba>] kmallocorder+0xda/0x110 [<ffffffff85857a11>] kmallocordertrace+0x21/0x130 [<ffffffff859c2ed1>] _kmalloc+0x711/0x8a0 [<ffffffff86160189>] jffs2suminit+0xd9/0x1a0 [<ffffffff86140e25>] jffs2domountfs+0x745/0x2120 [<ffffffff86149fec>] jffs2dofillsuper+0x35c/0x810 [<ffffffff8614aae9>] jffs2fill_super+0x2b9/0x3b0
This is because the resources allocated in jffs2suminit() are not released. Call jffs2sumexit() to release these resources to solve the problem.