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

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

 



Oops, my mistake.  I will fix that.

julia


On Thu, 11 Mar 2010, Karicheri, Muralidharan wrote:

> 
> >-----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