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

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

 



>-----Original Message-----
>From: linux-media-owner@xxxxxxxxxxxxxxx [mailto:linux-media-
>owner@xxxxxxxxxxxxxxx] On Behalf Of akpm@xxxxxxxxxxxxxxxxxxxx
>Sent: Thursday, March 11, 2010 5:02 PM
>To: mchehab@xxxxxxxxxxxxx
>Cc: linux-media@xxxxxxxxxxxxxxx; akpm@xxxxxxxxxxxxxxxxxxxx; julia@xxxxxxx
>Subject: [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.  If it could somehow be NULL, then
>the assignment should be moved after the NULL test.  Alternatively, perhaps
>the NULL test is intended to test std_info->stdid rather than std_info?
>
>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>
>Cc: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxx>
>Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
>---
>
> 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, 2 insertions(+), 5 deletions(-)
>
>diff -puN drivers/media/video/davinci/vpif_display.c~drivers-media-video-
>move-dereference-after-null-test drivers/media/video/davinci/vpif_display.c
>--- a/drivers/media/video/davinci/vpif_display.c~drivers-media-video-move-
>dereference-after-null-test
>+++ a/drivers/media/video/davinci/vpif_display.c
>@@ -383,8 +383,6 @@ static int vpif_get_std_info(struct chan
> 	int index;
>
> 	std_info->stdid = vid_ch->stdid;
>-	if (!std_info)
>-		return -1;

Please change it as 

if (!std_info->stdid)
	return -1;

Murali	
>
> 	for (index = 0; index < ARRAY_SIZE(ch_params); index++) {
> 		config = &ch_params[index];
>diff -puN drivers/media/video/saa7134/saa7134-alsa.c~drivers-media-video-
>move-dereference-after-null-test drivers/media/video/saa7134/saa7134-alsa.c
>--- a/drivers/media/video/saa7134/saa7134-alsa.c~drivers-media-video-move-
>dereference-after-null-test
>+++ a/drivers/media/video/saa7134/saa7134-alsa.c
>@@ -1011,8 +1011,6 @@ static int snd_card_saa7134_new_mixer(sn
> 	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 -puN drivers/media/video/usbvideo/quickcam_messenger.c~drivers-media-
>video-move-dereference-after-null-test
>drivers/media/video/usbvideo/quickcam_messenger.c
>--- a/drivers/media/video/usbvideo/quickcam_messenger.c~drivers-media-
>video-move-dereference-after-null-test
>+++ a/drivers/media/video/usbvideo/quickcam_messenger.c
>@@ -692,12 +692,13 @@ static int qcm_start_data(struct uvd *uv
>
> 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)
>_
>--
>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
--
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