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

From: kbuild test robot
Date: Mon Nov 05 2018 - 20:34:24 EST


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