In the Linux kernel, the following vulnerability has been resolved:
regulator: core: fix resource leak in regulator_register()
I got some resource leak reports while doing fault injection test:
OF: ERROR: memory leak, expected refcount 1 instead of 100, ofnodeget()/ofnodeput() unbalanced - destroy cset entry: attach overlay node /i2c/pmic@64/regulators/buck1
unreferenced object 0xffff88810deea000 (size 512): comm "490-i2c-rt5190a", pid 253, jiffies 4294859840 (age 5061.046s) hex dump (first 32 bytes): 00 00 00 00 ad 4e ad de ff ff ff ff 00 00 00 00 .....N.......... ff ff ff ff ff ff ff ff a0 1e 00 a1 ff ff ff ff ................ backtrace: [<00000000d78541e2>] kmalloctrace+0x21/0x110 [<00000000b343d153>] deviceprivateinit+0x32/0xd0 [<00000000be1f0c70>] deviceadd+0xb2d/0x1030 [<00000000e3e6344d>] regulatorregister+0xaf2/0x12a0 [<00000000e2f5e754>] devmregulatorregister+0x57/0xb0 [<000000008b898197>] rt5190aprobe+0x52a/0x861 [rt5190a_regulator]
unreferenced object 0xffff88810b617b80 (size 32): comm "490-i2c-rt5190a", pid 253, jiffies 4294859904 (age 5060.983s) hex dump (first 32 bytes): 72 65 67 75 6c 61 74 6f 72 2e 32 38 36 38 2d 53 regulator.2868-S 55 50 50 4c 59 00 ff ff 29 00 00 00 2b 00 00 00 UPPLY...)...+... backtrace: [<000000009da9280d>] _kmallocnodetrackcaller+0x44/0x1b0 [<0000000025c6a4e5>] kstrdup+0x3a/0x70 [<00000000790efb69>] createregulator+0xc0/0x4e0 [<0000000005ed203a>] regulatorresolvesupply+0x2d4/0x440 [<0000000045796214>] regulatorregister+0x10b3/0x12a0 [<00000000e2f5e754>] devmregulatorregister+0x57/0xb0 [<000000008b898197>] rt5190aprobe+0x52a/0x861 [rt5190aregulator]
After calling regulatorresolvesupply(), the 'rdev->supply' is set by setsupply(), after this set, in the error path, the resources need be released, so call regulatorput() to avoid the leaks.
{
"cna_assigner": "Linux",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2022/50xxx/CVE-2022-50724.json"
}