In the Linux kernel, the following vulnerability has been resolved:
ubi: Fix unreferenced object reported by kmemleak in ubiresizevolume()
There is a memory leaks problem reported by kmemleak:
unreferenced object 0xffff888102007a00 (size 128): comm "ubirsvol", pid 32090, jiffies 4298464136 (age 2361.231s) hex dump (first 32 bytes): ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ backtrace: [<ffffffff8176cecd>] _kmalloc+0x4d/0x150 [<ffffffffa02a9a36>] ubiebacreatetable+0x76/0x170 [ubi] [<ffffffffa029764e>] ubiresizevolume+0x1be/0xbc0 [ubi] [<ffffffffa02a3321>] ubicdevioctl+0x701/0x1850 [ubi] [<ffffffff81975d2d>] _x64sysioctl+0x11d/0x170 [<ffffffff83c142a5>] dosyscall64+0x35/0x80 [<ffffffff83e0006a>] entrySYSCALL64after_hwframe+0x46/0xb0
This is due to a mismatch between create and destroy interfaces, and in detail that "newebatbl" created by ubiebacreatetable() but destroyed by kfree(), while will causing "neweba_tbl->entries" not freed.
Fix it by replacing kfree(newebatbl) with ubiebadestroytable(neweba_tbl)