mirror of https://github.com/torvalds/linux.git
usb: typec: Fix error pointer dereference
The variable tps->partner is checked for an error pointer and then if it
is, it sends an error message but does not return and then immediately
dereferenced a few lines below:
tps->partner = typec_register_partner(tps->port, &desc);
if (IS_ERR(tps->partner))
dev_warn(tps->dev, "%s: failed to register partnet\n", __func__);
if (desc.identity) {
typec_partner_set_identity(tps->partner);
cd321x->cur_partner_identity = st.partner_identity;
}
Add early return and fix spelling mistake in error message.
Detected by Smatch:
drivers/usb/typec/tipd/core.c:827 cd321x_update_work() error:
'tps->partner' dereferencing possible ERR_PTR()
Fixes: 82432bbfb9 ("usb: typec: tipd: Handle mode transitions for CD321x")
Signed-off-by: Ethan Tidmore <ethantidmore06@gmail.com>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Link: https://patch.msgid.link/20260218214621.38154-1-ethantidmore06@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
0313023f19
commit
f2529d08fc
|
|
@ -820,8 +820,10 @@ static void cd321x_update_work(struct work_struct *work)
|
|||
desc.identity = &st.partner_identity;
|
||||
|
||||
tps->partner = typec_register_partner(tps->port, &desc);
|
||||
if (IS_ERR(tps->partner))
|
||||
dev_warn(tps->dev, "%s: failed to register partnet\n", __func__);
|
||||
if (IS_ERR(tps->partner)) {
|
||||
dev_warn(tps->dev, "%s: failed to register partner\n", __func__);
|
||||
return;
|
||||
}
|
||||
|
||||
if (desc.identity) {
|
||||
typec_partner_set_identity(tps->partner);
|
||||
|
|
|
|||
Loading…
Reference in New Issue