8000 Release memory on error in v4l2_loopback_open · v4l2loopback/v4l2loopback@a21165f · GitHub
[go: up one dir, main page]

Skip to content

Commit a21165f

Browse files
committed
Release memory on error in v4l2_loopback_open
Signed-off-by: Benny Baumann <BenBE@geshi.org>
1 parent 73bc194 commit a21165f

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

v4l2loopback.c

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2005,8 +2005,6 @@ static int v4l2_loopback_open(struct file *file)
20052005
if (opener == NULL)
20062006
return -ENOMEM;
20072007

2008-
v4l2_fh_init(&opener->fh, video_devdata(file));
2009-
file->private_data = &opener->fh;
20102008
atomic_inc(&dev->open_count);
20112009

20122010
opener->timeout_image_io = dev->timeout_image_io;
@@ -2017,10 +2015,17 @@ static int v4l2_loopback_open(struct file *file)
20172015

20182016
if (r < 0) {
20192017
dprintk("timeout image allocation failed\n");
2018+
2019+
atomic_dec(&dev->open_count);
2020+
2021+
kfree(opener);
20202022
return r;
20212023
}
20222024
}
20232025

2026+
v4l2_fh_init(&opener->fh, video_devdata(file));
2027+
file->private_data = &opener->fh;
2028+
20242029
v4l2_fh_add(&opener->fh);
20252030
dprintk("opened dev:%p with image:%p\n", dev, dev ? dev->image : NULL);
20262031
MARK();

0 commit comments

Comments
 (0)
0