From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============6562783053480319386==" MIME-Version: 1.0 From: kbuild test robot To: kbuild-all@lists.01.org Subject: Re: [PATCH v3 1/2] open: introduce openat2(2) syscall Date: Sun, 19 Jan 2020 15:20:03 +0800 Message-ID: <202001191508.84b73Xyn%lkp@intel.com> In-Reply-To: <20200118120800.16358-2-cyphar@cyphar.com> List-Id: --===============6562783053480319386== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hi Aleksa, Thank you for the patch! Yet something to improve: [auto build test ERROR on kselftest/next] [also build test ERROR on arm64/for-next/core tip/x86/asm linus/master v5.5= -rc6] [cannot apply to next-20200117] [if your patch is applied to the wrong git tree, please drop us a note to h= elp improve the system. BTW, we also suggest to use '--base' option to specify = the base tree in git format-patch, please see https://stackoverflow.com/a/37406= 982] url: https://github.com/0day-ci/linux/commits/Aleksa-Sarai/openat2-minor= -uapi-cleanups/20200118-201055 base: https://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselfte= st.git next config: openrisc-or1ksim_defconfig (attached as .config) compiler: or1k-linux-gcc (GCC) 9.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=3D9.2.0 make.cross ARCH=3Dopenrisc = If you fix the issue, kindly add following tag Reported-by: kbuild test robot All errors (new ones prefixed by >>): fs/open.c: In function 'build_open_flags': fs/open.c:1063:19: error: 'LOOKUP_NO_XDEV' undeclared (first use in this= function); did you mean 'LOOKUP_NO_REVAL'? 1063 | lookup_flags |=3D LOOKUP_NO_XDEV; | ^~~~~~~~~~~~~~ | LOOKUP_NO_REVAL fs/open.c:1063:19: note: each undeclared identifier is reported only onc= e for each function it appears in fs/open.c:1065:19: error: 'LOOKUP_NO_MAGICLINKS' undeclared (first use i= n this function); did you mean 'RESOLVE_NO_MAGICLINKS'? 1065 | lookup_flags |=3D LOOKUP_NO_MAGICLINKS; | ^~~~~~~~~~~~~~~~~~~~ | RESOLVE_NO_MAGICLINKS >> fs/open.c:1067:19: error: 'LOOKUP_NO_SYMLINKS' undeclared (first use in = this function); did you mean 'RESOLVE_NO_SYMLINKS'? 1067 | lookup_flags |=3D LOOKUP_NO_SYMLINKS; | ^~~~~~~~~~~~~~~~~~ | RESOLVE_NO_SYMLINKS fs/open.c:1069:19: error: 'LOOKUP_BENEATH' undeclared (first use in this= function); did you mean 'LOOKUP_CREATE'? 1069 | lookup_flags |=3D LOOKUP_BENEATH; | ^~~~~~~~~~~~~~ | LOOKUP_CREATE fs/open.c:1071:19: error: 'LOOKUP_IN_ROOT' undeclared (first use in this= function); did you mean 'LOOKUP_ROOT'? 1071 | lookup_flags |=3D LOOKUP_IN_ROOT; | ^~~~~~~~~~~~~~ | LOOKUP_ROOT vim +1067 fs/open.c 976 = 977 static inline int build_open_flags(const struct open_how *how, 978 struct open_flags *op) 979 { 980 int flags =3D how->flags; 981 int lookup_flags =3D 0; 982 int acc_mode =3D ACC_MODE(flags); 983 = 984 /* Must never be set by userspace */ 985 flags &=3D ~(FMODE_NONOTIFY | O_CLOEXEC); 986 = 987 /* 988 * Older syscalls implicitly clear all of the invalid flags or argu= ment 989 * values before calling build_open_flags(), but openat2(2) checks = all 990 * of its arguments. 991 */ 992 if (flags & ~VALID_OPEN_FLAGS) 993 return -EINVAL; 994 if (how->resolve & ~VALID_RESOLVE_FLAGS) 995 return -EINVAL; 996 = 997 /* Deal with the mode. */ 998 if (WILL_CREATE(flags)) { 999 if (how->mode & ~S_IALLUGO) 1000 return -EINVAL; 1001 op->mode =3D how->mode | S_IFREG; 1002 } else { 1003 if (how->mode !=3D 0) 1004 return -EINVAL; 1005 op->mode =3D 0; 1006 } 1007 = 1008 /* 1009 * In order to ensure programs get explicit errors when trying to u= se 1010 * O_TMPFILE on old kernels, O_TMPFILE is implemented such that it 1011 * looks like (O_DIRECTORY|O_RDWR & ~O_CREAT) to old kernels. But we 1012 * have to require userspace to explicitly set it. 1013 */ 1014 if (flags & __O_TMPFILE) { 1015 if ((flags & O_TMPFILE_MASK) !=3D O_TMPFILE) 1016 return -EINVAL; 1017 if (!(acc_mode & MAY_WRITE)) 1018 return -EINVAL; 1019 } 1020 if (flags & O_PATH) { 1021 /* O_PATH only permits certain other flags to be set. */ 1022 if (flags & ~O_PATH_FLAGS) 1023 return -EINVAL; 1024 acc_mode =3D 0; 1025 } 1026 = 1027 /* 1028 * O_SYNC is implemented as __O_SYNC|O_DSYNC. As many places only 1029 * check for O_DSYNC if the need any syncing at all we enforce it's 1030 * always set instead of having to deal with possibly weird behavio= ur 1031 * for malicious applications setting only __O_SYNC. 1032 */ 1033 if (flags & __O_SYNC) 1034 flags |=3D O_DSYNC; 1035 = 1036 op->open_flag =3D flags; 1037 = 1038 /* O_TRUNC implies we need access checks for write permissions */ 1039 if (flags & O_TRUNC) 1040 acc_mode |=3D MAY_WRITE; 1041 = 1042 /* Allow the LSM permission hook to distinguish append 1043 access from general write access. */ 1044 if (flags & O_APPEND) 1045 acc_mode |=3D MAY_APPEND; 1046 = 1047 op->acc_mode =3D acc_mode; 1048 = 1049 op->intent =3D flags & O_PATH ? 0 : LOOKUP_OPEN; 1050 = 1051 if (flags & O_CREAT) { 1052 op->intent |=3D LOOKUP_CREATE; 1053 if (flags & O_EXCL) 1054 op->intent |=3D LOOKUP_EXCL; 1055 } 1056 = 1057 if (flags & O_DIRECTORY) 1058 lookup_flags |=3D LOOKUP_DIRECTORY; 1059 if (!(flags & O_NOFOLLOW)) 1060 lookup_flags |=3D LOOKUP_FOLLOW; 1061 = 1062 if (how->resolve & RESOLVE_NO_XDEV) > 1063 lookup_flags |=3D LOOKUP_NO_XDEV; 1064 if (how->resolve & RESOLVE_NO_MAGICLINKS) 1065 lookup_flags |=3D LOOKUP_NO_MAGICLINKS; 1066 if (how->resolve & RESOLVE_NO_SYMLINKS) > 1067 lookup_flags |=3D LOOKUP_NO_SYMLINKS; 1068 if (how->resolve & RESOLVE_BENEATH) 1069 lookup_flags |=3D LOOKUP_BENEATH; 1070 if (how->resolve & RESOLVE_IN_ROOT) 1071 lookup_flags |=3D LOOKUP_IN_ROOT; 1072 = 1073 op->lookup_flags =3D lookup_flags; 1074 return 0; 1075 } 1076 = --- 0-DAY kernel test infrastructure Open Source Technology Cen= ter https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org Intel Corpor= ation --===============6562783053480319386== Content-Type: application/gzip MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="config.gz" 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 --===============6562783053480319386==--