Hi "Eric,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on linux/master]
[also build test ERROR on v5.15-rc6]
[cannot apply to linus/master jmorris-security/next-testing next-20211022]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url:
https://github.com/0day-ci/linux/commits/Eric-W-Biederman/ucounts-Pair-in...
base:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
ec681c53f8d2d0ee362ff67f5b98dd8263c15002
config: arc-allyesconfig (attached as .config)
compiler: arceb-elf-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
wget
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O
~/bin/make.cross
chmod +x ~/bin/make.cross
#
https://github.com/0day-ci/linux/commit/78e52b4abddecd7a6666f768874ee737c...
git remote add linux-review
https://github.com/0day-ci/linux
git fetch --no-tags linux-review
Eric-W-Biederman/ucounts-Pair-inc_rlimit_ucounts-with-dec_rlimit_ucoutns-in-commit_creds/20211019-022345
git checkout 78e52b4abddecd7a6666f768874ee737c292830d
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=arc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
In file included from arch/arc/include/asm/bug.h:30,
from include/linux/bug.h:5,
from include/linux/thread_info.h:13,
from include/asm-generic/preempt.h:5,
from ./arch/arc/include/generated/asm/preempt.h:1,
from include/linux/preempt.h:78,
from include/linux/rcupdate.h:27,
from include/linux/rculist.h:11,
from include/linux/pid.h:5,
from include/linux/sched.h:14,
from security/keys/process_keys.c:9:
security/keys/process_keys.c: In function 'key_change_session_keyring':
> security/keys/process_keys.c:923:30: error: format '%s'
expects a matching 'char *' argument [-Werror=format=]
923 |
WARN_ONCE(1, "In %s get_ucounts failed\n");
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/bug.h:91:62: note: in definition of macro '__WARN_printf'
91 | warn_slowpath_fmt(__FILE__, __LINE__, taint, arg); \
| ^~~
include/linux/once_lite.h:19:25: note: in expansion of macro 'WARN'
19 | func(__VA_ARGS__); \
| ^~~~
include/asm-generic/bug.h:150:9: note: in expansion of macro 'DO_ONCE_LITE_IF'
150 | DO_ONCE_LITE_IF(condition, WARN, 1, format)
| ^~~~~~~~~~~~~~~
security/keys/process_keys.c:923:17: note: in expansion of macro 'WARN_ONCE'
923 | WARN_ONCE(1, "In %s get_ucounts failed\n");
| ^~~~~~~~~
security/keys/process_keys.c:923:35: note: format string is defined here
923 | WARN_ONCE(1, "In %s get_ucounts failed\n");
| ~^
| |
| char *
cc1: all warnings being treated as errors
vim +923 security/keys/process_keys.c
906
907 /*
908 * Replace a process's session keyring on behalf of one of its children when
909 * the target process is about to resume userspace execution.
910 */
911 void key_change_session_keyring(struct callback_head *twork)
912 {
913 const struct cred *old = current_cred();
914 struct cred *new = container_of(twork, struct cred, rcu);
915
916 if (unlikely(current->flags & PF_EXITING)) {
917 put_cred(new);
918 return;
919 }
920
921 /* If get_ucounts fails more bits are needed in the refcount */
922 if (unlikely(!get_ucounts(old->ucounts))) {
923 WARN_ONCE(1, "In %s get_ucounts failed\n");
924 put_cred(new);
925 return;
926 }
927
928 new-> uid = old-> uid;
929 new-> euid = old-> euid;
930 new-> suid = old-> suid;
931 new->fsuid = old->fsuid;
932 new-> gid = old-> gid;
933 new-> egid = old-> egid;
934 new-> sgid = old-> sgid;
935 new->fsgid = old->fsgid;
936 new->user = get_uid(old->user);
937 new->ucounts = old->ucounts;
938 new->user_ns = get_user_ns(old->user_ns);
939 new->group_info = get_group_info(old->group_info);
940
941 new->securebits = old->securebits;
942 new->cap_inheritable = old->cap_inheritable;
943 new->cap_permitted = old->cap_permitted;
944 new->cap_effective = old->cap_effective;
945 new->cap_ambient = old->cap_ambient;
946 new->cap_bset = old->cap_bset;
947
948 new->jit_keyring = old->jit_keyring;
949 new->thread_keyring = key_get(old->thread_keyring);
950 new->process_keyring = key_get(old->process_keyring);
951
952 security_transfer_creds(new, old);
953
954 commit_creds(new);
955 }
956
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org