In the Linux kernel, the following vulnerability has been resolved:
blk-mq: fix possible memleak when register 'hctx' failed
There's issue as follows when do fault injection test: unreferenced object 0xffff888132a9f400 (size 512): comm "insmod", pid 308021, jiffies 4324277909 (age 509.733s) hex dump (first 32 bytes): 00 00 00 00 00 00 00 00 08 f4 a9 32 81 88 ff ff ...........2.... 08 f4 a9 32 81 88 ff ff 00 00 00 00 00 00 00 00 ...2............ backtrace: [<00000000e8952bb4>] kmallocnodetrace+0x22/0xa0 [<00000000f9980e0f>] blkmqallocandinithctx+0x3f1/0x7e0 [<000000002e719efa>] blkmqreallochwctxs+0x1e6/0x230 [<000000004f1fda40>] blkmqinitallocatedqueue+0x27e/0x910 [<00000000287123ec>] _blkmqallocdisk+0x67/0xf0 [<00000000a2a34657>] 0xffffffffa2ad310f [<00000000b173f718>] 0xffffffffa2af824a [<0000000095a1dabb>] dooneinitcall+0x87/0x2a0 [<00000000f32fdf93>] doinitmodule+0xdf/0x320 [<00000000cbe8541e>] loadmodule+0x3006/0x3390 [<0000000069ed1bdb>] _dosysfinitmodule+0x113/0x1b0 [<00000000a1a29ae8>] dosyscall64+0x35/0x80 [<000000009cd878b0>] entrySYSCALL64afterhwframe+0x46/0xb0
Fault injection context as follows: kobjectadd blkmqregisterhctx blkmqsysfsregister blkregisterqueue deviceadddisk nulladddev.part.0 [nullblk]
As 'blkmqregisterhctx' may already add some objects when failed halfway, but there isn't do fallback, caller don't know which objects add failed. To solve above issue just do fallback when add objects failed halfway in 'blkmqregisterhctx'.