Merge patch series "ti_sci: Address some issues found by Smatch"
Andrew Goodbody <andrew.goodbody@linaro.org> says: Prevent a memory leak from a non-freed malloc. Return an error code on an error path. Assign a value to a pointer before it is dereferenced. Link: https://lore.kernel.org/r/20251008-ti_sci-v3-0-5866bf84adc6@linaro.org
This commit is contained in:
@@ -191,9 +191,9 @@ static int ti_sci_get_response(struct ti_sci_info *info,
|
||||
|
||||
/* Sanity check for message response */
|
||||
if (hdr->seq != info->seq) {
|
||||
dev_dbg(info->dev, "%s: Message for %d is not expected\n",
|
||||
dev_err(info->dev, "%s: Message for %d is not expected\n",
|
||||
__func__, hdr->seq);
|
||||
return ret;
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (msg->len > info->desc->max_msg_size) {
|
||||
@@ -1365,6 +1365,8 @@ static int ti_sci_cmd_clk_get_parent(const struct ti_sci_handle *handle,
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
resp = (struct ti_sci_msg_resp_get_clock_parent *)xfer->tx_message.buf;
|
||||
|
||||
*parent_id = resp->parent_id;
|
||||
|
||||
return ret;
|
||||
@@ -3083,7 +3085,10 @@ devm_ti_sci_get_of_resource(const struct ti_sci_handle *handle,
|
||||
dev_err(dev, "%s resource type ids not available\n", of_prop);
|
||||
return ERR_PTR(sets);
|
||||
}
|
||||
temp = malloc(sets);
|
||||
temp = devm_kmalloc(dev, sets, GFP_KERNEL);
|
||||
if (!temp)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
|
||||
sets /= sizeof(u32);
|
||||
res->sets = sets;
|
||||
|
||||
@@ -3123,6 +3128,7 @@ devm_ti_sci_get_of_resource(const struct ti_sci_handle *handle,
|
||||
return ERR_PTR(-ENOMEM);
|
||||
}
|
||||
|
||||
devm_kfree(dev, temp);
|
||||
if (valid_set)
|
||||
return res;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user