tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   fc80c51fd4b23ec007e88d4c688f2cac1b8648e7
commit: 670d0a4b10704667765f7d18f7592993d02783aa sparse: use identifiers to 
define address spaces
date:   8 weeks ago
config: m68k-randconfig-s031-20200811 (attached as .config)
compiler: m68k-linux-gcc (GCC) 9.3.0
reproduce:
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        # apt-get install sparse
        # sparse version: v0.6.2-141-g19506bc2-dirty
        git checkout 670d0a4b10704667765f7d18f7592993d02783aa
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 
CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=m68k 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <l...@intel.com>


sparse warnings: (new ones prefixed by >>)

   fs/notify/fanotify/fanotify_user.c:135:63: sparse: sparse: restricted 
fmode_t degrades to integer
>> fs/notify/fanotify/fanotify_user.c:296:24: sparse: sparse: incorrect type in 
>> argument 1 (different address spaces) @@     expected void *to @@     got 
>> char [noderef] __user *[assigned] buf @@
   fs/notify/fanotify/fanotify_user.c:296:24: sparse:     expected void *to
   fs/notify/fanotify/fanotify_user.c:296:24: sparse:     got char [noderef] 
__user *[assigned] buf
   fs/notify/fanotify/fanotify_user.c:877:28: sparse: sparse: restricted 
fmode_t degrades to integer

vim +296 fs/notify/fanotify/fanotify_user.c

b2d879096ac7997 Eric Paris     2009-12-17  219  
44d705b0370b1d5 Amir Goldstein 2020-03-19  220  static int 
copy_info_to_user(__kernel_fsid_t *fsid, struct fanotify_fh *fh,
44d705b0370b1d5 Amir Goldstein 2020-03-19  221                               
const char *name, size_t name_len,
44d705b0370b1d5 Amir Goldstein 2020-03-19  222                               
char __user *buf, size_t count)
5e469c830fdb5a1 Amir Goldstein 2019-01-10  223  {
5e469c830fdb5a1 Amir Goldstein 2019-01-10  224          struct 
fanotify_event_info_fid info = { };
5e469c830fdb5a1 Amir Goldstein 2019-01-10  225          struct file_handle 
handle = { };
afc894c784c84cb Jan Kara       2020-03-24  226          unsigned char 
bounce[FANOTIFY_INLINE_FH_LEN], *fh_buf;
cacfb956d46edc5 Amir Goldstein 2020-03-19  227          size_t fh_len = fh ? 
fh->len : 0;
44d705b0370b1d5 Amir Goldstein 2020-03-19  228          size_t info_len = 
fanotify_fid_info_len(fh_len, name_len);
44d705b0370b1d5 Amir Goldstein 2020-03-19  229          size_t len = info_len;
5e469c830fdb5a1 Amir Goldstein 2019-01-10  230  
44d705b0370b1d5 Amir Goldstein 2020-03-19  231          pr_debug("%s: 
fh_len=%zu name_len=%zu, info_len=%zu, count=%zu\n",
44d705b0370b1d5 Amir Goldstein 2020-03-19  232                   __func__, 
fh_len, name_len, info_len, count);
44d705b0370b1d5 Amir Goldstein 2020-03-19  233  
44d705b0370b1d5 Amir Goldstein 2020-03-19  234          if (!fh_len || (name && 
!name_len))
5e469c830fdb5a1 Amir Goldstein 2019-01-10  235                  return 0;
5e469c830fdb5a1 Amir Goldstein 2019-01-10  236  
44d705b0370b1d5 Amir Goldstein 2020-03-19  237          if (WARN_ON_ONCE(len < 
sizeof(info) || len > count))
5e469c830fdb5a1 Amir Goldstein 2019-01-10  238                  return -EFAULT;
5e469c830fdb5a1 Amir Goldstein 2019-01-10  239  
44d705b0370b1d5 Amir Goldstein 2020-03-19  240          /*
44d705b0370b1d5 Amir Goldstein 2020-03-19  241           * Copy event info fid 
header followed by variable sized file handle
44d705b0370b1d5 Amir Goldstein 2020-03-19  242           * and optionally 
followed by variable sized filename.
44d705b0370b1d5 Amir Goldstein 2020-03-19  243           */
44d705b0370b1d5 Amir Goldstein 2020-03-19  244          info.hdr.info_type = 
name_len ? FAN_EVENT_INFO_TYPE_DFID_NAME :
44d705b0370b1d5 Amir Goldstein 2020-03-19  245                                  
        FAN_EVENT_INFO_TYPE_FID;
5e469c830fdb5a1 Amir Goldstein 2019-01-10  246          info.hdr.len = len;
d766b553615ce67 Amir Goldstein 2020-03-19  247          info.fsid = *fsid;
5e469c830fdb5a1 Amir Goldstein 2019-01-10  248          if (copy_to_user(buf, 
&info, sizeof(info)))
5e469c830fdb5a1 Amir Goldstein 2019-01-10  249                  return -EFAULT;
5e469c830fdb5a1 Amir Goldstein 2019-01-10  250  
5e469c830fdb5a1 Amir Goldstein 2019-01-10  251          buf += sizeof(info);
5e469c830fdb5a1 Amir Goldstein 2019-01-10  252          len -= sizeof(info);
44d705b0370b1d5 Amir Goldstein 2020-03-19  253          if (WARN_ON_ONCE(len < 
sizeof(handle)))
44d705b0370b1d5 Amir Goldstein 2020-03-19  254                  return -EFAULT;
44d705b0370b1d5 Amir Goldstein 2020-03-19  255  
afc894c784c84cb Jan Kara       2020-03-24  256          handle.handle_type = 
fh->type;
5e469c830fdb5a1 Amir Goldstein 2019-01-10  257          handle.handle_bytes = 
fh_len;
5e469c830fdb5a1 Amir Goldstein 2019-01-10  258          if (copy_to_user(buf, 
&handle, sizeof(handle)))
5e469c830fdb5a1 Amir Goldstein 2019-01-10  259                  return -EFAULT;
5e469c830fdb5a1 Amir Goldstein 2019-01-10  260  
5e469c830fdb5a1 Amir Goldstein 2019-01-10  261          buf += sizeof(handle);
5e469c830fdb5a1 Amir Goldstein 2019-01-10  262          len -= sizeof(handle);
44d705b0370b1d5 Amir Goldstein 2020-03-19  263          if (WARN_ON_ONCE(len < 
fh_len))
44d705b0370b1d5 Amir Goldstein 2020-03-19  264                  return -EFAULT;
44d705b0370b1d5 Amir Goldstein 2020-03-19  265  
b2d22b6bb33aac1 Jan Kara       2019-03-12  266          /*
44d705b0370b1d5 Amir Goldstein 2020-03-19  267           * For an inline fh and 
inline file name, copy through stack to exclude
44d705b0370b1d5 Amir Goldstein 2020-03-19  268           * the copy from 
usercopy hardening protections.
b2d22b6bb33aac1 Jan Kara       2019-03-12  269           */
afc894c784c84cb Jan Kara       2020-03-24  270          fh_buf = 
fanotify_fh_buf(fh);
b2d22b6bb33aac1 Jan Kara       2019-03-12  271          if (fh_len <= 
FANOTIFY_INLINE_FH_LEN) {
afc894c784c84cb Jan Kara       2020-03-24  272                  memcpy(bounce, 
fh_buf, fh_len);
afc894c784c84cb Jan Kara       2020-03-24  273                  fh_buf = bounce;
b2d22b6bb33aac1 Jan Kara       2019-03-12  274          }
afc894c784c84cb Jan Kara       2020-03-24  275          if (copy_to_user(buf, 
fh_buf, fh_len))
5e469c830fdb5a1 Amir Goldstein 2019-01-10  276                  return -EFAULT;
5e469c830fdb5a1 Amir Goldstein 2019-01-10  277  
5e469c830fdb5a1 Amir Goldstein 2019-01-10  278          buf += fh_len;
5e469c830fdb5a1 Amir Goldstein 2019-01-10  279          len -= fh_len;
44d705b0370b1d5 Amir Goldstein 2020-03-19  280  
44d705b0370b1d5 Amir Goldstein 2020-03-19  281          if (name_len) {
44d705b0370b1d5 Amir Goldstein 2020-03-19  282                  /* Copy the 
filename with terminating null */
44d705b0370b1d5 Amir Goldstein 2020-03-19  283                  name_len++;
44d705b0370b1d5 Amir Goldstein 2020-03-19  284                  if 
(WARN_ON_ONCE(len < name_len))
44d705b0370b1d5 Amir Goldstein 2020-03-19  285                          return 
-EFAULT;
44d705b0370b1d5 Amir Goldstein 2020-03-19  286  
44d705b0370b1d5 Amir Goldstein 2020-03-19  287                  if 
(copy_to_user(buf, name, name_len))
44d705b0370b1d5 Amir Goldstein 2020-03-19  288                          return 
-EFAULT;
44d705b0370b1d5 Amir Goldstein 2020-03-19  289  
44d705b0370b1d5 Amir Goldstein 2020-03-19  290                  buf += name_len;
44d705b0370b1d5 Amir Goldstein 2020-03-19  291                  len -= name_len;
44d705b0370b1d5 Amir Goldstein 2020-03-19  292          }
44d705b0370b1d5 Amir Goldstein 2020-03-19  293  
44d705b0370b1d5 Amir Goldstein 2020-03-19  294          /* Pad with 0's */
5e469c830fdb5a1 Amir Goldstein 2019-01-10  295          WARN_ON_ONCE(len < 0 || 
len >= FANOTIFY_EVENT_ALIGN);
5e469c830fdb5a1 Amir Goldstein 2019-01-10 @296          if (len > 0 && 
clear_user(buf, len))
5e469c830fdb5a1 Amir Goldstein 2019-01-10  297                  return -EFAULT;
5e469c830fdb5a1 Amir Goldstein 2019-01-10  298  
44d705b0370b1d5 Amir Goldstein 2020-03-19  299          return info_len;
5e469c830fdb5a1 Amir Goldstein 2019-01-10  300  }
5e469c830fdb5a1 Amir Goldstein 2019-01-10  301  

:::::: The code at line 296 was first introduced by commit
:::::: 5e469c830fdb5a1ebaa69b375b87f583326fd296 fanotify: copy event fid info 
to user

:::::: TO: Amir Goldstein <amir7...@gmail.com>
:::::: CC: Jan Kara <j...@suse.cz>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org

Attachment: .config.gz
Description: application/gzip

Reply via email to