thunderbolt: Release request if tb_cfg_request() fails in __tb_xdomain_response()

If tb_cfg_request() fails setting up the request (for example the
control channel is shut down already) it returns an error without
calling the callback. To avoid leaking that memory, call
tb_cfg_request_put() if tb_cfg_request() fails.

Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
This commit is contained in:
Mika Westerberg 2025-11-19 13:15:58 +02:00
parent 138ec65b2c
commit 4c63f29872

View File

@ -136,6 +136,7 @@ static int __tb_xdomain_response(struct tb_ctl *ctl, const void *response,
size_t size, enum tb_cfg_pkg_type type)
{
struct tb_cfg_request *req;
int ret;
req = tb_cfg_request_alloc();
if (!req)
@ -147,7 +148,11 @@ static int __tb_xdomain_response(struct tb_ctl *ctl, const void *response,
req->request_size = size;
req->request_type = type;
return tb_cfg_request(ctl, req, response_ready, req);
ret = tb_cfg_request(ctl, req, response_ready, req);
if (ret)
tb_cfg_request_put(req);
return ret;
}
/**