Description
In the Linux kernel, the following vulnerability has been resolved: ipmi_si: fix a memleak in try_smi_init() Kmemleak reported the following leak info in try_smi_init(): unreferenced object 0xffff00018ecf9400 (size 1024): comm "modprobe", pid 2707763, jiffies 4300851415 (age 773.308s) backtrace: [<000000004ca5b312>] __kmalloc+0x4b8/0x7b0 [<00000000953b1072>] try_smi_init+0x148/0x5dc [ipmi_si] [<000000006460d325>] 0xffff800081b10148 [<0000000039206ea5>] do_one_initcall+0x64/0x2a4 [<00000000601399ce>] do_init_module+0x50/0x300 [<000000003c12ba3c>] load_module+0x7a8/0x9e0 [<00000000c246fffe>] __se_sys_init_module+0x104/0x180 [<00000000eea99093>] __arm64_sys_init_module+0x24/0x30 [<0000000021b1ef87>] el0_svc_common.constprop.0+0x94/0x250 [<0000000070f4f8b7>] do_el0_svc+0x48/0xe0 [<000000005a05337f>] el0_svc+0x24/0x3c [<000000005eb248d6>] el0_sync_handler+0x160/0x164 [<0000000030a59039>] el0_sync+0x160/0x180 The problem was that when an error occurred before handlers registration and after allocating `new_smi->si_sm`, the variable wouldn't be freed in the error handling afterwards since `shutdown_smi()` hadn't been registered yet. Fix it by adding a `kfree()` in the error handling path in `try_smi_init()`.
Product status
7960f18a56475bf2177c5ff56c72eb4c12c56440 before b9bc8fbb2d416ce87f0342478dc9fcfd79f2c65f
7960f18a56475bf2177c5ff56c72eb4c12c56440 before f53ab5a2bf20fed59a2f7542d3453228b8056358
7960f18a56475bf2177c5ff56c72eb4c12c56440 before 5c5f02e16b919c8cb6024dc3778c8d8f1fb1f26b
7960f18a56475bf2177c5ff56c72eb4c12c56440 before cbb7d8a4b4beb3061b3a1847a742983a01dca381
7960f18a56475bf2177c5ff56c72eb4c12c56440 before 09cb2a71b2e982015fe0464f28da1ab42b8e6375
7960f18a56475bf2177c5ff56c72eb4c12c56440 before 1bfcfea0fae0d0a6c6ff5543e6d704b3807b83ce
7960f18a56475bf2177c5ff56c72eb4c12c56440 before 7291af9a738d936c2d6869d030711dceb68404d0
7960f18a56475bf2177c5ff56c72eb4c12c56440 before 6cf1a126de2992b4efe1c3c4d398f8de4aed6e3f
4.18
Any version before 4.18
4.19.295
5.4.257
5.10.195
5.15.132
6.1.53
6.4.16
6.5.3
6.6
References
git.kernel.org/...c/b9bc8fbb2d416ce87f0342478dc9fcfd79f2c65f
git.kernel.org/...c/f53ab5a2bf20fed59a2f7542d3453228b8056358
git.kernel.org/...c/5c5f02e16b919c8cb6024dc3778c8d8f1fb1f26b
git.kernel.org/...c/cbb7d8a4b4beb3061b3a1847a742983a01dca381
git.kernel.org/...c/09cb2a71b2e982015fe0464f28da1ab42b8e6375
git.kernel.org/...c/1bfcfea0fae0d0a6c6ff5543e6d704b3807b83ce
git.kernel.org/...c/7291af9a738d936c2d6869d030711dceb68404d0
git.kernel.org/...c/6cf1a126de2992b4efe1c3c4d398f8de4aed6e3f