Skip to content

Commit

Permalink
V4L/DVB (8842): vivi_release(): fix use-after-free
Browse files Browse the repository at this point in the history
video_device_release() does kfree(), which made the following printk()
doing a use-after-free.

printk() first and release then.

Reported-by: Adrian Bunk <bunk@kernel.org>
Signed-off-by: Adrian Bunk <bunk@kernel.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
  • Loading branch information
Adrian Bunk authored and Mauro Carvalho Chehab committed Sep 3, 2008
1 parent 9a0c04a commit 8da9bae
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions drivers/media/video/vivi.c
Original file line number Diff line number Diff line change
Expand Up @@ -1021,13 +1021,13 @@ static int vivi_release(void)
dev = list_entry(list, struct vivi_dev, vivi_devlist);

if (-1 != dev->vfd->minor) {
video_unregister_device(dev->vfd);
printk(KERN_INFO "%s: /dev/video%d unregistered.\n",
printk(KERN_INFO "%s: unregistering /dev/video%d\n",
VIVI_MODULE_NAME, dev->vfd->minor);
video_unregister_device(dev->vfd);
} else {
video_device_release(dev->vfd);
printk(KERN_INFO "%s: /dev/video%d released.\n",
printk(KERN_INFO "%s: releasing /dev/video%d\n",
VIVI_MODULE_NAME, dev->vfd->minor);
video_device_release(dev->vfd);
}

kfree(dev);
Expand Down

0 comments on commit 8da9bae

Please sign in to comment.