Skip to content

Commit 9e31082

Browse files
Ethan Tidmoregregkh
authored andcommitted
usb: typec: Fix error pointer dereference
[ Upstream commit f2529d0 ] 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: 82432bb ("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> Signed-off-by: Sasha Levin <sashal@kernel.org>
1 parent 0d01f0b commit 9e31082

1 file changed

Lines changed: 4 additions & 2 deletions

File tree

drivers/usb/typec/tipd/core.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -820,8 +820,10 @@ static void cd321x_update_work(struct work_struct *work)
820820
desc.identity = &st.partner_identity;
821821

822822
tps->partner = typec_register_partner(tps->port, &desc);
823-
if (IS_ERR(tps->partner))
824-
dev_warn(tps->dev, "%s: failed to register partnet\n", __func__);
823+
if (IS_ERR(tps->partner)) {
824+
dev_warn(tps->dev, "%s: failed to register partner\n", __func__);
825+
return;
826+
}
825827

826828
if (desc.identity) {
827829
typec_partner_set_identity(tps->partner);

0 commit comments

Comments
 (0)