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: i386-randconfig-x002-201844 (attached as .config) compiler: gcc-7 (Debian 7.3.0-1) 7.3.0 reproduce: # save the attached .config to linux build tree make ARCH=i386 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 'orig_ist'? origin = ERR_PTR(-EPERM); ^~~~~~ orig_ist 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