[PATCH] usb: host: sl811_cs: fix memory leak on probe failure

From: Zongmin Zhou

Date: Thu Aug 27 2026 - 03:42:36 EST


From: Zongmin Zhou <zhouzongmin@xxxxxxxxxx>

sl811_cs_probe() leaks the local_info_t allocated into link->priv when
sl811_cs_config() fails: the only kfree() lives in the remove callback
sl811_cs_detach(), which the PCMCIA core never calls for a device whose
probe failed.

Free the private data when sl811_cs_config() fails.

Fixes: c6de2b64eb57 ("[PATCH] USB: add sl811_cs support")
Signed-off-by: Zongmin Zhou <zhouzongmin@xxxxxxxxxx>
---
drivers/usb/host/sl811_cs.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/usb/host/sl811_cs.c b/drivers/usb/host/sl811_cs.c
index ada91ca33f65..fd0cd541bf53 100644
--- a/drivers/usb/host/sl811_cs.c
+++ b/drivers/usb/host/sl811_cs.c
@@ -177,6 +177,7 @@ failed:
static int sl811_cs_probe(struct pcmcia_device *link)
{
local_info_t *local;
+ int ret;

local = kzalloc_obj(local_info_t);
if (!local)
@@ -184,7 +185,11 @@ static int sl811_cs_probe(struct pcmcia_device *link)
local->p_dev = link;
link->priv = local;

- return sl811_cs_config(link);
+ ret = sl811_cs_config(link);
+ if (ret)
+ kfree(local);
+
+ return ret;
}

static const struct pcmcia_device_id sl811_ids[] = {
--
2.34.1


No virus found
Checked by Hillstone Network AntiVirus