From: Corey Minyard Date: Mon, 19 Jun 2023 16:43:33 +0000 (-0500) Subject: ipmi:ssif: Fix a memory leak when scanning for an adapter X-Git-Tag: v6.6-rc1~127^2~5 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b8d72e32e1453d37ee5c8a219f24e7eeadc471ef;p=thirdparty%2Fkernel%2Flinux.git ipmi:ssif: Fix a memory leak when scanning for an adapter The adapter scan ssif_info_find() sets info->adapter_name if the adapter info came from SMBIOS, as it's not set in that case. However, this function can be called more than once, and it will leak the adapter name if it had already been set. So check for NULL before setting it. Fixes: c4436c9149c5 ("ipmi_ssif: avoid registering duplicate ssif interface") Signed-off-by: Corey Minyard --- diff --git a/drivers/char/ipmi/ipmi_ssif.c b/drivers/char/ipmi/ipmi_ssif.c index 07cfde579cfb9..3d21c39e2060e 100644 --- a/drivers/char/ipmi/ipmi_ssif.c +++ b/drivers/char/ipmi/ipmi_ssif.c @@ -1400,7 +1400,7 @@ static struct ssif_addr_info *ssif_info_find(unsigned short addr, restart: list_for_each_entry(info, &ssif_infos, link) { if (info->binfo.addr == addr) { - if (info->addr_src == SI_SMBIOS) + if (info->addr_src == SI_SMBIOS && !info->adapter_name) info->adapter_name = kstrdup(adapter_name, GFP_KERNEL);