On Mon, Jul 27, 2020 at 12:28 AM Peilin Ye <yepeilin.cs@xxxxxxxxx> wrote: > > video_put_user() is copying uninitialized stack memory to userspace due > to the compiler not initializing holes in the structures declared on the > stack. Fix it by initializing `ev32` and `vb32` using memset(). > > Reported-and-tested-by: syzbot+79d751604cb6f29fbf59@xxxxxxxxxxxxxxxxxxxxxxxxx > Link: https://syzkaller.appspot.com/bug?extid=79d751604cb6f29fbf59 > Reviewed-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> > Signed-off-by: Peilin Ye <yepeilin.cs@xxxxxxxxx> Thanks a lot for addressing this! I now see that I actually created a similar bugfix for it back in January, but for some reason that got stuck in my backlog and I never wrote a proper description for it or sent it out to the list, sorry about that. I would hope we could find a way to have either the compiler or sparse warn if we copy uninitialized data to user space, but we now don't even check for that within the kernel any more. I would suggest adding these tags to the patch, to ensure it gets backported to stable kernels as needed: Cc: stable@xxxxxxxxxxxxxxx Fixes: 1a6c0b36dd19 ("media: v4l2-core: fix VIDIOC_DQEVENT for time64 ABI") Fixes: 577c89b0ce72 ("media: v4l2-core: fix v4l2_buffer handling for time64 ABI") In addition to Reviewed-by: Arnd Bergmann <arnd@xxxxxxxx>