Re: [PATCH v6 1/2] overlayfs: check CAP_DAC_READ_SEARCH before issuing exportfs_decode_fh

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

 



Hi Mark,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on miklos-vfs/overlayfs-next]
[also build test ERROR on v4.20-rc1 next-20181105]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Mark-Salyzyn/overlayfs-check-CAP_DAC_READ_SEARCH-before-issuing-exportfs_decode_fh/20181106-073038
base:   https://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs.git overlayfs-next
config: sh-allmodconfig (attached as .config)
compiler: sh4-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=7.2.0 make.cross ARCH=sh 

All errors (new ones prefixed by >>):

   fs//overlayfs/namei.c: In function 'ovl_decode_real_fh':
>> fs//overlayfs/namei.c:167:3: error: 'origin' undeclared (first use in this function); did you mean 'isodigit'?
      origin = ERR_PTR(-EPERM);
      ^~~~~~
      isodigit
   fs//overlayfs/namei.c:167:3: note: each undeclared identifier is reported only once for each function it appears in
   fs//overlayfs/namei.c:168:3: error: label 'out' used but not defined
      goto out;
      ^~~~

vim +167 fs//overlayfs/namei.c

   152	
   153	struct dentry *ovl_decode_real_fh(struct ovl_fh *fh, struct vfsmount *mnt,
   154					  bool connected)
   155	{
   156		struct dentry *real;
   157		int bytes;
   158	
   159		/*
   160		 * Make sure that the stored uuid matches the uuid of the lower
   161		 * layer where file handle will be decoded.
   162		 */
   163		if (!uuid_equal(&fh->uuid, &mnt->mnt_sb->s_uuid))
   164			return NULL;
   165	
   166		if (!capable(CAP_DAC_READ_SEARCH)) {
 > 167			origin = ERR_PTR(-EPERM);
   168			goto out;
   169		}
   170	
   171		bytes = (fh->len - offsetof(struct ovl_fh, fid));
   172		real = exportfs_decode_fh(mnt, (struct fid *)fh->fid,
   173					  bytes >> 2, (int)fh->type,
   174					  connected ? ovl_acceptable : NULL, mnt);
   175		if (IS_ERR(real)) {
   176			/*
   177			 * Treat stale file handle to lower file as "origin unknown".
   178			 * upper file handle could become stale when upper file is
   179			 * unlinked and this information is needed to handle stale
   180			 * index entries correctly.
   181			 */
   182			if (real == ERR_PTR(-ESTALE) &&
   183			    !(fh->flags & OVL_FH_FLAG_PATH_UPPER))
   184				real = NULL;
   185			return real;
   186		}
   187	
   188		if (ovl_dentry_weird(real)) {
   189			dput(real);
   190			return NULL;
   191		}
   192	
   193		return real;
   194	}
   195	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip


[Index of Archives]     [Linux Filesystems Devel]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux