For drivers/media/video/davinci/vpif_display.c

Acked-by: Muralidharan Karicheri <m-kariche...@ti.com>

Murali Karicheri
Software Design Engineer
Texas Instruments Inc.
Germantown, MD 20874
phone: 301-407-9583
email: m-kariche...@ti.com

>-----Original Message-----
>From: Julia Lawall [mailto:ju...@diku.dk]
>Sent: Friday, March 12, 2010 4:16 AM
>To: Karicheri, Muralidharan
>Cc: a...@linux-foundation.org; mche...@infradead.org; linux-
>me...@vger.kernel.org
>Subject: RE: [patch 2/5] drivers/media/video: move dereference after NULL
>test
>
>From: Julia Lawall <ju...@diku.dk>
>
>In quickcam_messenger.c, if the NULL test on uvd is needed, then the
>dereference should be after the NULL test.
>
>In vpif_display.c, std_info is initialized to the address of a structure
>field.  This seems unlikely to be NULL.  Test std_info->stdid instead.
>
>In saa7134-alsa.c, the function is only called from one place, where the
>chip argument has already been dereferenced.  On the other hand, if it
>should be kept, then card should be initialized after it.
>
>A simplified version of the semantic match that detects this problem is as
>follows (http://coccinelle.lip6.fr/):
>
>// <smpl>
>@match exists@
>expression x, E;
>identifier fld;
>@@
>
>* x->fld
>  ... when != \(x = E\|&x\)
>* x == NULL
>// </smpl>
>
>Signed-off-by: Julia Lawall <ju...@diku.dk>
>
>---
> drivers/media/video/davinci/vpif_display.c        |    2 +-
> drivers/media/video/saa7134/saa7134-alsa.c        |    2 --
> drivers/media/video/usbvideo/quickcam_messenger.c |    3 ++-
> 3 files changed, 3 insertions(+), 4 deletions(-)
>
>diff --git a/drivers/media/video/usbvideo/quickcam_messenger.c
>b/drivers/media/video/usbvideo/quickcam_messenger.c
>index 803d3e4..f0043d0 100644
>--- a/drivers/media/video/usbvideo/quickcam_messenger.c
>+++ b/drivers/media/video/usbvideo/quickcam_messenger.c
>@@ -692,12 +692,13 @@ static int qcm_start_data(struct uvd *uvd)
>
> static void qcm_stop_data(struct uvd *uvd)
> {
>-      struct qcm *cam = (struct qcm *) uvd->user_data;
>+      struct qcm *cam;
>       int i, j;
>       int ret;
>
>       if ((uvd == NULL) || (!uvd->streaming) || (uvd->dev == NULL))
>               return;
>+      cam = (struct qcm *) uvd->user_data;
>
>       ret = qcm_camera_off(uvd);
>       if (ret)
>diff --git a/drivers/media/video/saa7134/saa7134-alsa.c
>b/drivers/media/video/saa7134/saa7134-alsa.c
>index d48c450..d3bd82a 100644
>--- a/drivers/media/video/saa7134/saa7134-alsa.c
>+++ b/drivers/media/video/saa7134/saa7134-alsa.c
>@@ -1011,8 +1011,6 @@ static int
>snd_card_saa7134_new_mixer(snd_card_saa7134_t * chip)
>       unsigned int idx;
>       int err, addr;
>
>-      if (snd_BUG_ON(!chip))
>-              return -EINVAL;
>       strcpy(card->mixername, "SAA7134 Mixer");
>
>       for (idx = 0; idx < ARRAY_SIZE(snd_saa7134_volume_controls); idx++) {
>diff --git a/drivers/media/video/davinci/vpif_display.c
>b/drivers/media/video/davinci/vpif_display.c
>index dfddef7..b2dce78 100644
>--- a/drivers/media/video/davinci/vpif_display.c
>+++ b/drivers/media/video/davinci/vpif_display.c
>@@ -383,7 +383,7 @@ static int vpif_get_std_info(struct channel_obj *ch)
>       int index;
>
>       std_info->stdid = vid_ch->stdid;
>-      if (!std_info)
>+      if (!std_info->stdid)
>               return -1;
>
>       for (index = 0; index < ARRAY_SIZE(ch_params); index++) {
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to