Re: [PATCH] usb: typec: tipd: assign partner identity to persistent memory

From: Sven Peter

Date: Sat Nov 07 2026 - 15:12:37 EST




On 11/7/26 11:06, Michael Reeves via B4 Relay wrote:
From: Michael Reeves <michael.reeves077@xxxxxxxxx>

cd321x_update_work() passes a pointer to a local stack variable
(&st.partner_identity) to typec_register_partner(). The Type-C core
caches this pointer, leading to a stack-use-after-free and a kernel
Oops when accessed later (e.g., via get_pd_product_type()).

Fix this by copying the identity to the heap-allocated cd321x struct
and passing a pointer to that persistent memory instead. Move up
the assignment to cd321x->cur_partner_identity, so this works.

Reported-by: Nicole Mazzuca <nicole@xxxxxxxxxxxx>
Closes: https://github.com/AsahiLinux/linux/issues/668
Fixes: 82432bbfb9e8 ("usb: typec: tipd: Handle mode transitions for CD321x")
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Michael Reeves <michael.reeves077@xxxxxxxxx>
---

Reviewed-by: Sven Peter <sven@xxxxxxxxxx>


Thanks,


Sven