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

Reply via email to