RE: [patch 2/5] drivers/media/video: move dereference after NULL test

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

Acked-by: Muralidharan Karicheri <m-karicheri2@xxxxxx>

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

>-----Original Message-----
>From: Julia Lawall [mailto:julia@xxxxxxx]
>Sent: Friday, March 12, 2010 4:16 AM
>To: Karicheri, Muralidharan
>Cc: akpm@xxxxxxxxxxxxxxxxxxxx; mchehab@xxxxxxxxxxxxx; linux-
>media@xxxxxxxxxxxxxxx
>Subject: RE: [patch 2/5] drivers/media/video: move dereference after NULL
>test
>
>From: Julia Lawall <julia@xxxxxxx>
>
>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 <julia@xxxxxxx>
>
>---
> 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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux