Patch "media: vivid: fix compose size exceed boundary" has been added to the 4.14-stable tree

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

 



This is a note to let you know that I've just added the patch titled

    media: vivid: fix compose size exceed boundary

to the 4.14-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     media-vivid-fix-compose-size-exceed-boundary.patch
and it can be found in the queue-4.14 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 95a01089c867a34c29a3145541735839da90c2b4
Author: Liu Shixin <liushixin2@xxxxxxxxxx>
Date:   Thu Oct 27 20:38:55 2022 +0800

    media: vivid: fix compose size exceed boundary
    
    [ Upstream commit 94a7ad9283464b75b12516c5512541d467cefcf8 ]
    
    syzkaller found a bug:
    
     BUG: unable to handle page fault for address: ffffc9000a3b1000
     #PF: supervisor write access in kernel mode
     #PF: error_code(0x0002) - not-present page
     PGD 100000067 P4D 100000067 PUD 10015f067 PMD 1121ca067 PTE 0
     Oops: 0002 [#1] PREEMPT SMP
     CPU: 0 PID: 23489 Comm: vivid-000-vid-c Not tainted 6.1.0-rc1+ #512
     Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.13.0-1ubuntu1.1 04/01/2014
     RIP: 0010:memcpy_erms+0x6/0x10
    [...]
     Call Trace:
      <TASK>
      ? tpg_fill_plane_buffer+0x856/0x15b0
      vivid_fillbuff+0x8ac/0x1110
      vivid_thread_vid_cap_tick+0x361/0xc90
      vivid_thread_vid_cap+0x21a/0x3a0
      kthread+0x143/0x180
      ret_from_fork+0x1f/0x30
      </TASK>
    
    This is because we forget to check boundary after adjust compose->height
    int V4L2_SEL_TGT_CROP case. Add v4l2_rect_map_inside() to fix this problem
    for this case.
    
    Fixes: ef834f7836ec ("[media] vivid: add the video capture and output parts")
    Signed-off-by: Liu Shixin <liushixin2@xxxxxxxxxx>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/media/platform/vivid/vivid-vid-cap.c b/drivers/media/platform/vivid/vivid-vid-cap.c
index 459cff1626a6..bcc2170f2dff 100644
--- a/drivers/media/platform/vivid/vivid-vid-cap.c
+++ b/drivers/media/platform/vivid/vivid-vid-cap.c
@@ -938,6 +938,7 @@ int vivid_vid_cap_s_selection(struct file *file, void *fh, struct v4l2_selection
 			if (dev->has_compose_cap) {
 				v4l2_rect_set_min_size(compose, &min_rect);
 				v4l2_rect_set_max_size(compose, &max_rect);
+				v4l2_rect_map_inside(compose, &fmt);
 			}
 			dev->fmt_cap_rect = fmt;
 			tpg_s_buf_height(&dev->tpg, fmt.height);



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux