From: Hans Verkuil <hansverk@cisco.com>
To: Ethan Zhao <ethan.kernel@gmail.com>
Cc: hans.verkuil@cisco.com, m.chehab@samsung.com,
gregkh@linuxfoundation.org,
linux-media <linux-media@vger.kernel.org>,
Andy Walls <awalls@md.metrocast.net>
Subject: Re: [PATCH] [media] cx18: introduce a helper function to avoid array overrun
Date: Fri, 10 Jan 2014 14:06:51 +0100 [thread overview]
Message-ID: <52CFF06B.9000302@cisco.com> (raw)
In-Reply-To: <1389020826-807-1-git-send-email-ethan.kernel@gmail.com>
Also CC to linux-media and Andy Walls who maintains this driver.
Regards,
Hans
On 01/06/14 16:07, Ethan Zhao wrote:
> cx18_i2c_register() is called in cx18_init_subdevs() with index
> greater than length of hw_bus array, that will cause array overrun,
> introduce a helper cx18_get_max_bus_num() to avoid it.
>
> V2: fix a typo and use ARRAY_SIZE macro
>
> Signed-off-by: Ethan Zhao <ethan.kernel@gmail.com>
> ---
> drivers/media/pci/cx18/cx18-driver.c | 2 +-
> drivers/media/pci/cx18/cx18-i2c.c | 5 +++++
> drivers/media/pci/cx18/cx18-i2c.h | 1 +
> 3 files changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/media/pci/cx18/cx18-driver.c b/drivers/media/pci/cx18/cx18-driver.c
> index 6386ced..dadcd4a 100644
> --- a/drivers/media/pci/cx18/cx18-driver.c
> +++ b/drivers/media/pci/cx18/cx18-driver.c
> @@ -856,7 +856,7 @@ static void cx18_init_subdevs(struct cx18 *cx)
> u32 device;
> int i;
>
> - for (i = 0, device = 1; i < 32; i++, device <<= 1) {
> + for (i = 0, device = 1; i < cx18_get_max_bus_num(); i++, device <<= 1) {
>
> if (!(device & hw))
> continue;
> diff --git a/drivers/media/pci/cx18/cx18-i2c.c b/drivers/media/pci/cx18/cx18-i2c.c
> index 4af8cd6..1a7b49b 100644
> --- a/drivers/media/pci/cx18/cx18-i2c.c
> +++ b/drivers/media/pci/cx18/cx18-i2c.c
> @@ -108,6 +108,11 @@ static int cx18_i2c_new_ir(struct cx18 *cx, struct i2c_adapter *adap, u32 hw,
> -1 : 0;
> }
>
> +int cx18_get_max_bus_num(void)
> +{
> + return ARRAY_SIZE(hw_bus);
> +}
> +
> int cx18_i2c_register(struct cx18 *cx, unsigned idx)
> {
> struct v4l2_subdev *sd;
> diff --git a/drivers/media/pci/cx18/cx18-i2c.h b/drivers/media/pci/cx18/cx18-i2c.h
> index 1180fdc..6f2ceb5 100644
> --- a/drivers/media/pci/cx18/cx18-i2c.h
> +++ b/drivers/media/pci/cx18/cx18-i2c.h
> @@ -21,6 +21,7 @@
> * 02111-1307 USA
> */
>
> +int cx18_get_max_bus_num(void);
> int cx18_i2c_register(struct cx18 *cx, unsigned idx);
> struct v4l2_subdev *cx18_find_hw(struct cx18 *cx, u32 hw);
>
>
next prev parent reply other threads:[~2014-01-10 13:09 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-06 15:07 [PATCH] [media] cx18: introduce a helper function to avoid array overrun Ethan Zhao
2014-01-10 13:06 ` Hans Verkuil [this message]
2014-01-11 14:08 ` Andy Walls
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=52CFF06B.9000302@cisco.com \
--to=hansverk@cisco.com \
--cc=awalls@md.metrocast.net \
--cc=ethan.kernel@gmail.com \
--cc=gregkh@linuxfoundation.org \
--cc=hans.verkuil@cisco.com \
--cc=linux-media@vger.kernel.org \
--cc=m.chehab@samsung.com \
/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.