The patch titled drivers/media/video: Move dereference after NULL test has been added to the -mm tree. Its filename is drivers-media-video-move-dereference-after-null-test.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/SubmitChecklist when testing your code *** See http://userweb.kernel.org/~akpm/stuff/added-to-mm.txt to find out what to do about this The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/ ------------------------------------------------------ Subject: 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; 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) _ Patches currently in -mm which might be from julia@xxxxxxx are origin.patch linux-next.patch drivers-scsi-libsas-use-sam_good.patch drivers-block-dac960c-use-dac960_v2_controller.patch drivers-char-ipmi-use-kcs_idle_state.patch drivers-message-move-dereference-after-null-test.patch drivers-acpi-move-dereference-after-null-test.patch drivers-media-video-move-dereference-after-null-test.patch drivers-mmc-move-dereference-after-null-test.patch drivers-cpuidle-move-dereference-after-null-test.patch drivers-video-move-dereference-after-null-test.patch drivers-ata-libata-move-dereference-after-null-test.patch drivers-scsi-remove-unnecessary-null-test.patch arch-arm-plat-omap-drop-an-unnecessary-null-test.patch arch-arm-plat-s3c24xx-move-dereference-after-null-test.patch -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html