[PATCH 04/20] media: uvc: uvc_v4l2.c: add temp variable for list iteration
From: Daniel W. S. Almeida
Date: Fri Aug 07 2020 - 04:36:25 EST
From: "Daniel W. S. Almeida" <dwlsalmeida@xxxxxxxxx>
Fixes the following coccinelle reports:
drivers/media/usb/uvc/uvc_v4l2.c:840:8-13:
ERROR: invalid reference to the index variable of the iterator on line 836
drivers/media/usb/uvc/uvc_v4l2.c:851:5-10:
ERROR: invalid reference to the index variable of the iterator on line 843
drivers/media/usb/uvc/uvc_v4l2.c:851:22-27:
ERROR: invalid reference to the index variable of the iterator on line 843
Byy introducing a temporary variable for list iteration.
Found using - Coccinelle (http://coccinelle.lip6.fr)
Signed-off-by: Daniel W. S. Almeida <dwlsalmeida@xxxxxxxxx>
---
drivers/media/usb/uvc/uvc_v4l2.c | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/drivers/media/usb/uvc/uvc_v4l2.c b/drivers/media/usb/uvc/uvc_v4l2.c
index 0335e69b70ab..7205ef13c2e1 100644
--- a/drivers/media/usb/uvc/uvc_v4l2.c
+++ b/drivers/media/usb/uvc/uvc_v4l2.c
@@ -826,6 +826,7 @@ static int uvc_ioctl_enum_input(struct file *file, void *fh,
struct uvc_video_chain *chain = handle->chain;
const struct uvc_entity *selector = chain->selector;
struct uvc_entity *iterm = NULL;
+ struct uvc_entity *cursor = NULL;
u32 index = input->index;
int pin = 0;
@@ -833,18 +834,22 @@ static int uvc_ioctl_enum_input(struct file *file, void *fh,
(chain->dev->quirks & UVC_QUIRK_IGNORE_SELECTOR_UNIT)) {
if (index != 0)
return -EINVAL;
- list_for_each_entry(iterm, &chain->entities, chain) {
- if (UVC_ENTITY_IS_ITERM(iterm))
+ list_for_each_entry(cursor, &chain->entities, chain) {
+ if (UVC_ENTITY_IS_ITERM(cursor)){
+ iterm = cursor;
break;
+ }
}
pin = iterm->id;
} else if (index < selector->bNrInPins) {
pin = selector->baSourceID[index];
- list_for_each_entry(iterm, &chain->entities, chain) {
- if (!UVC_ENTITY_IS_ITERM(iterm))
+ list_for_each_entry(cursor, &chain->entities, chain) {
+ if (!UVC_ENTITY_IS_ITERM(cursor))
continue;
- if (iterm->id == pin)
+ if (cursor->id == pin) {
+ iterm = cursor;
break;
+ }
}
}
@@ -1519,4 +1524,3 @@ const struct v4l2_file_operations uvc_fops = {
.get_unmapped_area = uvc_v4l2_get_unmapped_area,
#endif
};
-
--
2.28.0