CC: kbuild-...@lists.01.org CC: linux-ker...@vger.kernel.org TO: Arnd Bergmann <a...@arndb.de> CC: Mauro Carvalho Chehab <mche...@kernel.org> CC: linux-me...@vger.kernel.org CC: Hans Verkuil <hverk...@xs4all.nl>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 98790bbac4db1697212ce9462ec35ca09c4a2810 commit: 342027c5de4494d14657b64ead536a5671768672 media: v4l2-core: fix compat v4l2_buffer handling for time64 ABI date: 5 months ago :::::: branch date: 73 minutes ago :::::: commit date: 5 months ago config: s390-randconfig-m001-20200524 (attached as .config) compiler: s390-linux-gcc (GCC) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kbuild test robot <l...@intel.com> Reported-by: Dan Carpenter <dan.carpen...@oracle.com> New smatch warnings: drivers/media/v4l2-core/v4l2-compat-ioctl32.c:782 get_v4l2_buffer32_time32() warn: ignoring unreachable code. Old smatch warnings: drivers/media/v4l2-core/v4l2-compat-ioctl32.c:173 get_v4l2_window32() warn: ignoring unreachable code. arch/s390/include/asm/uaccess.h:143 __get_user_fn() error: uninitialized symbol 'rc'. arch/s390/include/asm/uaccess.h:113 __put_user_fn() error: uninitialized symbol 'rc'. drivers/media/v4l2-core/v4l2-compat-ioctl32.c:682 get_v4l2_buffer32() warn: ignoring unreachable code. drivers/media/v4l2-core/v4l2-compat-ioctl32.c:1162 get_v4l2_ext_controls32() warn: ignoring unreachable code. # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=342027c5de4494d14657b64ead536a5671768672 git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git remote update linus git checkout 342027c5de4494d14657b64ead536a5671768672 vim +782 drivers/media/v4l2-core/v4l2-compat-ioctl32.c cf664a6458b254c drivers/media/video/compat_ioctl32.c Philippe De Muyter 2006-01-09 738 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 739 static int get_v4l2_buffer32_time32(struct v4l2_buffer_time32 __user *p64, 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 740 struct v4l2_buffer32_time32 __user *p32, 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 741 void __user *aux_buf, u32 aux_space) 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 742 { 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 743 u32 type; 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 744 u32 length; 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 745 s32 request_fd; 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 746 enum v4l2_memory memory; 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 747 struct v4l2_plane32 __user *uplane32; 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 748 struct v4l2_plane __user *uplane; 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 749 compat_caddr_t p; 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 750 int ret; 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 751 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 752 if (!access_ok(p32, sizeof(*p32)) || 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 753 assign_in_user(&p64->index, &p32->index) || 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 754 get_user(type, &p32->type) || 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 755 put_user(type, &p64->type) || 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 756 assign_in_user(&p64->flags, &p32->flags) || 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 757 get_user(memory, &p32->memory) || 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 758 put_user(memory, &p64->memory) || 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 759 get_user(length, &p32->length) || 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 760 put_user(length, &p64->length) || 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 761 get_user(request_fd, &p32->request_fd) || 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 762 put_user(request_fd, &p64->request_fd)) 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 763 return -EFAULT; 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 764 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 765 if (V4L2_TYPE_IS_OUTPUT(type)) 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 766 if (assign_in_user(&p64->bytesused, &p32->bytesused) || 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 767 assign_in_user(&p64->field, &p32->field) || 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 768 assign_in_user(&p64->timestamp.tv_sec, 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 769 &p32->timestamp.tv_sec) || 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 770 assign_in_user(&p64->timestamp.tv_usec, 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 771 &p32->timestamp.tv_usec)) 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 772 return -EFAULT; 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 773 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 774 if (V4L2_TYPE_IS_MULTIPLANAR(type)) { 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 775 u32 num_planes = length; 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 776 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 777 if (num_planes == 0) { 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 778 /* 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 779 * num_planes == 0 is legal, e.g. when userspace doesn't 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 780 * need planes array on DQBUF 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 781 */ 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 @782 return put_user(NULL, &p64->m.planes); 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 783 } 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 784 if (num_planes > VIDEO_MAX_PLANES) 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 785 return -EINVAL; 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 786 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 787 if (get_user(p, &p32->m.planes)) 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 788 return -EFAULT; 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 789 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 790 uplane32 = compat_ptr(p); 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 791 if (!access_ok(uplane32, 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 792 num_planes * sizeof(*uplane32))) 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 793 return -EFAULT; 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 794 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 795 /* 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 796 * We don't really care if userspace decides to kill itself 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 797 * by passing a very big num_planes value 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 798 */ 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 799 if (aux_space < num_planes * sizeof(*uplane)) 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 800 return -EFAULT; 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 801 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 802 uplane = aux_buf; 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 803 if (put_user_force(uplane, &p64->m.planes)) 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 804 return -EFAULT; 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 805 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 806 while (num_planes--) { 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 807 ret = get_v4l2_plane32(uplane, uplane32, memory); 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 808 if (ret) 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 809 return ret; 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 810 uplane++; 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 811 uplane32++; 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 812 } 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 813 } else { 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 814 switch (memory) { 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 815 case V4L2_MEMORY_MMAP: 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 816 case V4L2_MEMORY_OVERLAY: 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 817 if (assign_in_user(&p64->m.offset, &p32->m.offset)) 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 818 return -EFAULT; 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 819 break; 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 820 case V4L2_MEMORY_USERPTR: { 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 821 compat_ulong_t userptr; 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 822 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 823 if (get_user(userptr, &p32->m.userptr) || 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 824 put_user((unsigned long)compat_ptr(userptr), 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 825 &p64->m.userptr)) 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 826 return -EFAULT; 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 827 break; 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 828 } 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 829 case V4L2_MEMORY_DMABUF: 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 830 if (assign_in_user(&p64->m.fd, &p32->m.fd)) 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 831 return -EFAULT; 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 832 break; 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 833 } 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 834 } 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 835 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 836 return 0; 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 837 } 342027c5de4494d drivers/media/v4l2-core/v4l2-compat-ioctl32.c Arnd Bergmann 2019-12-16 838 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org
.config.gz
Description: application/gzip
_______________________________________________ kbuild mailing list -- kbuild@lists.01.org To unsubscribe send an email to kbuild-le...@lists.01.org