usb: gadget: composite: remove check of list iterator against head past the loop...
authorJakob Koschel <jakobkoschel@gmail.com>
Tue, 8 Mar 2022 17:18:13 +0000 (18:18 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 15 Mar 2022 17:19:44 +0000 (18:19 +0100)
commiteb6dc99ea2364a149ad61dd04637ea3b20434304
tree78bde72af676e815d5ac387f8c084efd15b878f0
parent418947745c8e0e3835bd64a4123837d05ef808cd
usb: gadget: composite: remove check of list iterator against head past the loop body

When list_for_each_entry() completes the iteration over the whole list
without breaking the loop, the iterator value will be a bogus pointer
computed based on the head element.

While it is safe to use the pointer to determine if it was computed
based on the head element, either with list_entry_is_head() or
&pos->member == head, using the iterator variable after the loop should
be avoided.

In preparation to limiting the scope of a list iterator to the list
traversal loop, use a dedicated pointer to point to the found element [1].

Link: https://lore.kernel.org/all/YhdfEIwI4EdtHdym@kroah.com/
Signed-off-by: Jakob Koschel <jakobkoschel@gmail.com>
Link: https://lore.kernel.org/r/20220308171818.384491-22-jakobkoschel@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/gadget/composite.c