mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00
V4L/DVB (13151): uvcvideo: Dismiss privileges when freeing video buffers
Dismiss privileges on the file handle when calling VIDIOC_REQBUFS with a buffer count of 0. This allows applications to release the streaming permissions on the file handle without closing it. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
4e7387858f
commit
1a969d9863
1 changed files with 5 additions and 1 deletions
|
@ -364,7 +364,8 @@ static int uvc_v4l2_set_streamparm(struct uvc_streaming *stream,
|
|||
* unprivileged state. Only a single instance can be in a privileged state at
|
||||
* a given time. Trying to perform an operation that requires privileges will
|
||||
* automatically acquire the required privileges if possible, or return -EBUSY
|
||||
* otherwise. Privileges are dismissed when closing the instance.
|
||||
* otherwise. Privileges are dismissed when closing the instance or when
|
||||
* freeing the video buffers using VIDIOC_REQBUFS.
|
||||
*
|
||||
* Operations that require privileges are:
|
||||
*
|
||||
|
@ -884,6 +885,9 @@ static long uvc_v4l2_do_ioctl(struct file *file, unsigned int cmd, void *arg)
|
|||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
if (ret == 0)
|
||||
uvc_dismiss_privileges(handle);
|
||||
|
||||
rb->count = ret;
|
||||
ret = 0;
|
||||
break;
|
||||
|
|
Loading…
Add table
Reference in a new issue