caif: fix memory leak in cfctrl_linkup_request()
When linktype is unknown or kzalloc failed in cfctrl_linkup_request(), pkt is not released. Add release process to error path. Fixes:b482cd2053
("net-caif: add CAIF core protocol stack") Fixes:8d545c8f95
("caif: Disconnect without waiting for response") Signed-off-by: Zhengchao Shao <shaozhengchao@huawei.com> Reviewed-by: Jiri Pirko <jiri@nvidia.com> Link: https://lore.kernel.org/r/20230104065146.1153009-1-shaozhengchao@huawei.com Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
parent
1ac8855744
commit
fe69230f05
@ -269,11 +269,15 @@ int cfctrl_linkup_request(struct cflayer *layer,
|
|||||||
default:
|
default:
|
||||||
pr_warn("Request setup of bad link type = %d\n",
|
pr_warn("Request setup of bad link type = %d\n",
|
||||||
param->linktype);
|
param->linktype);
|
||||||
|
cfpkt_destroy(pkt);
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
req = kzalloc(sizeof(*req), GFP_KERNEL);
|
req = kzalloc(sizeof(*req), GFP_KERNEL);
|
||||||
if (!req)
|
if (!req) {
|
||||||
|
cfpkt_destroy(pkt);
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
}
|
||||||
|
|
||||||
req->client_layer = user_layer;
|
req->client_layer = user_layer;
|
||||||
req->cmd = CFCTRL_CMD_LINK_SETUP;
|
req->cmd = CFCTRL_CMD_LINK_SETUP;
|
||||||
req->param = *param;
|
req->param = *param;
|
||||||
|
Loading…
Reference in New Issue
Block a user