Messages in this thread Patch in this message | | | From | Jiasheng Jiang <> | Subject | [PATCH] usb: typec: Check error number after calling ida_simple_get | Date | Tue, 11 Jan 2022 15:17:51 +0800 |
| |
If allocation fails, the ida_simple_get() will return error number. So altmode_id_get() may return error number. And then id will be used in altmode_id_remove, causing the BUG_ON(). Or it will be assigned to alt->id. Therefore, it should be better to check it and return error if fails, like the ida_simple_get() in typec_register_port().
Fixes: 8a37d87d72f0 ("usb: typec: Bus type for alternate modes") Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn> --- drivers/usb/typec/class.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/drivers/usb/typec/class.c b/drivers/usb/typec/class.c index aeef453aa658..67b3670ede99 100644 --- a/drivers/usb/typec/class.c +++ b/drivers/usb/typec/class.c @@ -516,6 +516,9 @@ typec_register_altmode(struct device *parent, struct altmode *alt; int ret; + if (id < 0) + return ERR_PTR(id); + alt = kzalloc(sizeof(*alt), GFP_KERNEL); if (!alt) { altmode_id_remove(parent, id); -- 2.25.1
| |