All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ricardo Ribalda <ribalda@chromium.org>
To: Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	linux-media@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: Ricardo Ribalda <ribalda@chromium.org>
Subject: [PATCH v2 4/7] media: uvcvideo: Allow entities with no pads
Date: Wed,  4 Nov 2020 19:07:31 +0100	[thread overview]
Message-ID: <20201104180734.286789-5-ribalda@chromium.org> (raw)
In-Reply-To: <20201104180734.286789-1-ribalda@chromium.org>

Avoid an underflow while calculating the number of inputs for entities
with zero pads.

Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
---
 drivers/media/usb/uvc/uvc_driver.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c
index 7a1b2decccc8..27acc221f0d6 100644
--- a/drivers/media/usb/uvc/uvc_driver.c
+++ b/drivers/media/usb/uvc/uvc_driver.c
@@ -1033,7 +1033,11 @@ static struct uvc_entity *uvc_alloc_entity(u16 type, u16 id,
 	unsigned int i;
 
 	extra_size = roundup(extra_size, sizeof(*entity->pads));
-	num_inputs = (type & UVC_TERM_OUTPUT) ? num_pads : num_pads - 1;
+	if (num_pads)
+		num_inputs = (type & UVC_TERM_OUTPUT) ? num_pads :
+								num_pads - 1;
+	else
+		num_inputs = 0;
 	size = sizeof(*entity) + extra_size + sizeof(*entity->pads) * num_pads
 	     + num_inputs;
 	entity = kzalloc(size, GFP_KERNEL);
@@ -1061,7 +1065,7 @@ static struct uvc_entity *uvc_alloc_entity(u16 type, u16 id,
 
 	for (i = 0; i < num_inputs; ++i)
 		entity->pads[i].flags = MEDIA_PAD_FL_SINK;
-	if (!UVC_ENTITY_IS_OTERM(entity))
+	if (!UVC_ENTITY_IS_OTERM(entity) && num_pads)
 		entity->pads[num_pads-1].flags = MEDIA_PAD_FL_SOURCE;
 
 	entity->bNrInPins = num_inputs;
-- 
2.29.1.341.ge80a0c044ae-goog


  parent reply	other threads:[~2020-11-04 18:08 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-04 18:07 [PATCH v2 0/7] Show privacy_gpio as a v4l2_ctrl Ricardo Ribalda
2020-11-04 18:07 ` [PATCH v2 1/7] media: uvcvideo: Use pr_cont() macro Ricardo Ribalda
2020-11-04 19:29   ` Joe Perches
2020-11-04 21:42     ` Laurent Pinchart
2020-11-04 21:51       ` Joe Perches
2020-11-04 22:31         ` Ricardo Ribalda
2020-11-04 23:00           ` Joe Perches
2020-11-04 23:01             ` Ricardo Ribalda
2020-11-04 23:59               ` Joe Perches
2020-11-05  9:50                 ` Ricardo Ribalda
2020-11-05 18:58                   ` Joe Perches
2020-11-05 19:52                     ` Ricardo Ribalda
2020-11-04 21:42     ` Ricardo Ribalda
2020-11-04 18:07 ` [PATCH v2 2/7] media: uvcvideo: Move guid to entity Ricardo Ribalda
2020-11-06  6:06   ` Laurent Pinchart
2020-11-06  8:45     ` Ricardo Ribalda
2020-11-04 18:07 ` [PATCH v2 3/7] media: uvcvideo: Allow external entities Ricardo Ribalda
2020-11-04 18:07 ` Ricardo Ribalda [this message]
2020-11-04 18:07 ` [PATCH v2 5/7] media: uvcvideo: Entity defined get_info and get_cur Ricardo Ribalda
2020-11-04 18:07 ` [PATCH v2 6/7] media: uvcvideo: Implement UVC_EXT_GPIO_UNIT Ricardo Ribalda
2020-11-04 18:07 ` [PATCH v2 7/7] media: uvcvideo: Add Privacy control based on EXT_GPIO Ricardo Ribalda

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201104180734.286789-5-ribalda@chromium.org \
    --to=ribalda@chromium.org \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.