All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
Cc: kbuild-all@lists.01.org, linux-kernel@vger.kernel.org
Subject: security/apparmor/lsm.c:1101:21: sparse: sparse: incorrect type in initializer (different address spaces)
Date: Fri, 31 Jul 2020 08:54:03 +0800	[thread overview]
Message-ID: <202007310833.wdH0K35A%lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 14567 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   83bdc7275e6206f560d247be856bceba3e1ed8f2
commit: 670d0a4b10704667765f7d18f7592993d02783aa sparse: use identifiers to define address spaces
date:   6 weeks ago
config: openrisc-randconfig-s031-20200730 (attached as .config)
compiler: or1k-linux-gcc (GCC) 9.3.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # apt-get install sparse
        # sparse version: v0.6.2-98-g4932334a-dirty
        git checkout 670d0a4b10704667765f7d18f7592993d02783aa
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=openrisc 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>


sparse warnings: (new ones prefixed by >>)

>> security/apparmor/lsm.c:1101:21: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected int *__pu_addr @@     got int [noderef] __user *optlen @@
   security/apparmor/lsm.c:1101:21: sparse:     expected int *__pu_addr
>> security/apparmor/lsm.c:1101:21: sparse:     got int [noderef] __user *optlen
   security/apparmor/lsm.c: note: in included file (through include/asm-generic/atomic.h, arch/openrisc/include/asm/atomic.h, include/linux/atomic.h, ...):
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   security/apparmor/lsm.c: note: in included file (through include/linux/sched/task.h, include/linux/sched/signal.h, include/linux/rcuwait.h, ...):
   include/linux/uaccess.h:131:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void *to @@     got void [noderef] __user *to @@
   include/linux/uaccess.h:131:38: sparse:     expected void *to
   include/linux/uaccess.h:131:38: sparse:     got void [noderef] __user *to
   include/linux/uaccess.h:131:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const [noderef] __user *from @@     got void const *from @@
   include/linux/uaccess.h:131:42: sparse:     expected void const [noderef] __user *from
   include/linux/uaccess.h:131:42: sparse:     got void const *from
   security/apparmor/lsm.c: note: in included file (through include/linux/uaccess.h, include/linux/sched/task.h, include/linux/sched/signal.h, ...):
   arch/openrisc/include/asm/uaccess.h:246:55: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const *from @@     got void const [noderef] __user *from @@
   arch/openrisc/include/asm/uaccess.h:246:55: sparse:     expected void const *from
   arch/openrisc/include/asm/uaccess.h:246:55: sparse:     got void const [noderef] __user *from
   security/apparmor/lsm.c: note: in included file (through include/asm-generic/atomic.h, arch/openrisc/include/asm/atomic.h, include/linux/atomic.h, ...):
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
--
>> drivers/watchdog/pcwd_usb.c:375:37: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected char const *__gu_addr @@     got char const [noderef] __user * @@
   drivers/watchdog/pcwd_usb.c:375:37: sparse:     expected char const *__gu_addr
>> drivers/watchdog/pcwd_usb.c:375:37: sparse:     got char const [noderef] __user *
>> drivers/watchdog/pcwd_usb.c:407:24: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected int *__pu_addr @@     got int [noderef] __user *p @@
   drivers/watchdog/pcwd_usb.c:407:24: sparse:     expected int *__pu_addr
>> drivers/watchdog/pcwd_usb.c:407:24: sparse:     got int [noderef] __user *p
   drivers/watchdog/pcwd_usb.c:416:24: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected int *__pu_addr @@     got int [noderef] __user *p @@
   drivers/watchdog/pcwd_usb.c:416:24: sparse:     expected int *__pu_addr
   drivers/watchdog/pcwd_usb.c:416:24: sparse:     got int [noderef] __user *p
>> drivers/watchdog/pcwd_usb.c:423:21: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected int const *__gu_addr @@     got int [noderef] __user *p @@
   drivers/watchdog/pcwd_usb.c:423:21: sparse:     expected int const *__gu_addr
   drivers/watchdog/pcwd_usb.c:423:21: sparse:     got int [noderef] __user *p
   drivers/watchdog/pcwd_usb.c:447:21: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected int const *__gu_addr @@     got int [noderef] __user *p @@
   drivers/watchdog/pcwd_usb.c:447:21: sparse:     expected int const *__gu_addr
   drivers/watchdog/pcwd_usb.c:447:21: sparse:     got int [noderef] __user *p
   drivers/watchdog/pcwd_usb.c:458:24: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected int *__pu_addr @@     got int [noderef] __user *p @@
   drivers/watchdog/pcwd_usb.c:458:24: sparse:     expected int *__pu_addr
   drivers/watchdog/pcwd_usb.c:458:24: sparse:     got int [noderef] __user *p
   drivers/watchdog/pcwd_usb.c:467:24: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected int *__pu_addr @@     got int [noderef] __user *p @@
   drivers/watchdog/pcwd_usb.c:467:24: sparse:     expected int *__pu_addr
   drivers/watchdog/pcwd_usb.c:467:24: sparse:     got int [noderef] __user *p
   drivers/watchdog/pcwd_usb.c: note: in included file (through include/linux/sched/task.h, include/linux/sched/signal.h, include/linux/rcuwait.h, ...):
   include/linux/uaccess.h:131:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void *to @@     got void [noderef] __user *to @@
   include/linux/uaccess.h:131:38: sparse:     expected void *to
   include/linux/uaccess.h:131:38: sparse:     got void [noderef] __user *to
   include/linux/uaccess.h:131:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const [noderef] __user *from @@     got void const *from @@
   include/linux/uaccess.h:131:42: sparse:     expected void const [noderef] __user *from
   include/linux/uaccess.h:131:42: sparse:     got void const *from
   drivers/watchdog/pcwd_usb.c: note: in included file (through include/linux/uaccess.h, include/linux/sched/task.h, include/linux/sched/signal.h, ...):
   arch/openrisc/include/asm/uaccess.h:246:55: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const *from @@     got void const [noderef] __user *from @@
   arch/openrisc/include/asm/uaccess.h:246:55: sparse:     expected void const *from
   arch/openrisc/include/asm/uaccess.h:246:55: sparse:     got void const [noderef] __user *from
   drivers/watchdog/pcwd_usb.c: note: in included file (through include/linux/sched/task.h, include/linux/sched/signal.h, include/linux/rcuwait.h, ...):
   include/linux/uaccess.h:131:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void *to @@     got void [noderef] __user *to @@
   include/linux/uaccess.h:131:38: sparse:     expected void *to
   include/linux/uaccess.h:131:38: sparse:     got void [noderef] __user *to
   include/linux/uaccess.h:131:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const [noderef] __user *from @@     got void const *from @@
   include/linux/uaccess.h:131:42: sparse:     expected void const [noderef] __user *from
   include/linux/uaccess.h:131:42: sparse:     got void const *from
   drivers/watchdog/pcwd_usb.c: note: in included file (through include/linux/uaccess.h, include/linux/sched/task.h, include/linux/sched/signal.h, ...):
   arch/openrisc/include/asm/uaccess.h:246:55: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const *from @@     got void const [noderef] __user *from @@
   arch/openrisc/include/asm/uaccess.h:246:55: sparse:     expected void const *from
   arch/openrisc/include/asm/uaccess.h:246:55: sparse:     got void const [noderef] __user *from

vim +1101 security/apparmor/lsm.c

56974a6fcfef69e John Johansen 2017-07-18  1066  
56974a6fcfef69e John Johansen 2017-07-18  1067  /**
56974a6fcfef69e John Johansen 2017-07-18  1068   * apparmor_socket_getpeersec_stream - get security context of peer
56974a6fcfef69e John Johansen 2017-07-18  1069   *
56974a6fcfef69e John Johansen 2017-07-18  1070   * Note: for tcp only valid if using ipsec or cipso on lan
56974a6fcfef69e John Johansen 2017-07-18  1071   */
56974a6fcfef69e John Johansen 2017-07-18  1072  static int apparmor_socket_getpeersec_stream(struct socket *sock,
56974a6fcfef69e John Johansen 2017-07-18  1073  					     char __user *optval,
56974a6fcfef69e John Johansen 2017-07-18  1074  					     int __user *optlen,
56974a6fcfef69e John Johansen 2017-07-18  1075  					     unsigned int len)
56974a6fcfef69e John Johansen 2017-07-18  1076  {
56974a6fcfef69e John Johansen 2017-07-18  1077  	char *name;
56974a6fcfef69e John Johansen 2017-07-18  1078  	int slen, error = 0;
56974a6fcfef69e John Johansen 2017-07-18  1079  	struct aa_label *label;
56974a6fcfef69e John Johansen 2017-07-18  1080  	struct aa_label *peer;
56974a6fcfef69e John Johansen 2017-07-18  1081  
56974a6fcfef69e John Johansen 2017-07-18  1082  	label = begin_current_label_crit_section();
56974a6fcfef69e John Johansen 2017-07-18  1083  	peer = sk_peer_label(sock->sk);
56974a6fcfef69e John Johansen 2017-07-18  1084  	if (IS_ERR(peer)) {
56974a6fcfef69e John Johansen 2017-07-18  1085  		error = PTR_ERR(peer);
56974a6fcfef69e John Johansen 2017-07-18  1086  		goto done;
56974a6fcfef69e John Johansen 2017-07-18  1087  	}
56974a6fcfef69e John Johansen 2017-07-18  1088  	slen = aa_label_asxprint(&name, labels_ns(label), peer,
56974a6fcfef69e John Johansen 2017-07-18  1089  				 FLAG_SHOW_MODE | FLAG_VIEW_SUBNS |
56974a6fcfef69e John Johansen 2017-07-18  1090  				 FLAG_HIDDEN_UNCONFINED, GFP_KERNEL);
56974a6fcfef69e John Johansen 2017-07-18  1091  	/* don't include terminating \0 in slen, it breaks some apps */
56974a6fcfef69e John Johansen 2017-07-18  1092  	if (slen < 0) {
56974a6fcfef69e John Johansen 2017-07-18  1093  		error = -ENOMEM;
56974a6fcfef69e John Johansen 2017-07-18  1094  	} else {
56974a6fcfef69e John Johansen 2017-07-18  1095  		if (slen > len) {
56974a6fcfef69e John Johansen 2017-07-18  1096  			error = -ERANGE;
56974a6fcfef69e John Johansen 2017-07-18  1097  		} else if (copy_to_user(optval, name, slen)) {
56974a6fcfef69e John Johansen 2017-07-18  1098  			error = -EFAULT;
56974a6fcfef69e John Johansen 2017-07-18  1099  			goto out;
56974a6fcfef69e John Johansen 2017-07-18  1100  		}
56974a6fcfef69e John Johansen 2017-07-18 @1101  		if (put_user(slen, optlen))
56974a6fcfef69e John Johansen 2017-07-18  1102  			error = -EFAULT;
56974a6fcfef69e John Johansen 2017-07-18  1103  out:
56974a6fcfef69e John Johansen 2017-07-18  1104  		kfree(name);
56974a6fcfef69e John Johansen 2017-07-18  1105  
56974a6fcfef69e John Johansen 2017-07-18  1106  	}
56974a6fcfef69e John Johansen 2017-07-18  1107  
56974a6fcfef69e John Johansen 2017-07-18  1108  done:
56974a6fcfef69e John Johansen 2017-07-18  1109  	end_current_label_crit_section(label);
56974a6fcfef69e John Johansen 2017-07-18  1110  
56974a6fcfef69e John Johansen 2017-07-18  1111  	return error;
56974a6fcfef69e John Johansen 2017-07-18  1112  }
56974a6fcfef69e John Johansen 2017-07-18  1113  

:::::: The code at line 1101 was first introduced by commit
:::::: 56974a6fcfef69ee0825bd66ed13e92070ac5224 apparmor: add base infastructure for socket mediation

:::::: TO: John Johansen <john.johansen@canonical.com>
:::::: CC: John Johansen <john.johansen@canonical.com>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 25154 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: security/apparmor/lsm.c:1101:21: sparse: sparse: incorrect type in initializer (different address spaces)
Date: Fri, 31 Jul 2020 08:54:03 +0800	[thread overview]
Message-ID: <202007310833.wdH0K35A%lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 14740 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   83bdc7275e6206f560d247be856bceba3e1ed8f2
commit: 670d0a4b10704667765f7d18f7592993d02783aa sparse: use identifiers to define address spaces
date:   6 weeks ago
config: openrisc-randconfig-s031-20200730 (attached as .config)
compiler: or1k-linux-gcc (GCC) 9.3.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # apt-get install sparse
        # sparse version: v0.6.2-98-g4932334a-dirty
        git checkout 670d0a4b10704667765f7d18f7592993d02783aa
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=openrisc 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>


sparse warnings: (new ones prefixed by >>)

>> security/apparmor/lsm.c:1101:21: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected int *__pu_addr @@     got int [noderef] __user *optlen @@
   security/apparmor/lsm.c:1101:21: sparse:     expected int *__pu_addr
>> security/apparmor/lsm.c:1101:21: sparse:     got int [noderef] __user *optlen
   security/apparmor/lsm.c: note: in included file (through include/asm-generic/atomic.h, arch/openrisc/include/asm/atomic.h, include/linux/atomic.h, ...):
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
   security/apparmor/lsm.c: note: in included file (through include/linux/sched/task.h, include/linux/sched/signal.h, include/linux/rcuwait.h, ...):
   include/linux/uaccess.h:131:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void *to @@     got void [noderef] __user *to @@
   include/linux/uaccess.h:131:38: sparse:     expected void *to
   include/linux/uaccess.h:131:38: sparse:     got void [noderef] __user *to
   include/linux/uaccess.h:131:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const [noderef] __user *from @@     got void const *from @@
   include/linux/uaccess.h:131:42: sparse:     expected void const [noderef] __user *from
   include/linux/uaccess.h:131:42: sparse:     got void const *from
   security/apparmor/lsm.c: note: in included file (through include/linux/uaccess.h, include/linux/sched/task.h, include/linux/sched/signal.h, ...):
   arch/openrisc/include/asm/uaccess.h:246:55: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const *from @@     got void const [noderef] __user *from @@
   arch/openrisc/include/asm/uaccess.h:246:55: sparse:     expected void const *from
   arch/openrisc/include/asm/uaccess.h:246:55: sparse:     got void const [noderef] __user *from
   security/apparmor/lsm.c: note: in included file (through include/asm-generic/atomic.h, arch/openrisc/include/asm/atomic.h, include/linux/atomic.h, ...):
   arch/openrisc/include/asm/cmpxchg.h:69:29: sparse: sparse: shift too big (32) for type int
--
>> drivers/watchdog/pcwd_usb.c:375:37: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected char const *__gu_addr @@     got char const [noderef] __user * @@
   drivers/watchdog/pcwd_usb.c:375:37: sparse:     expected char const *__gu_addr
>> drivers/watchdog/pcwd_usb.c:375:37: sparse:     got char const [noderef] __user *
>> drivers/watchdog/pcwd_usb.c:407:24: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected int *__pu_addr @@     got int [noderef] __user *p @@
   drivers/watchdog/pcwd_usb.c:407:24: sparse:     expected int *__pu_addr
>> drivers/watchdog/pcwd_usb.c:407:24: sparse:     got int [noderef] __user *p
   drivers/watchdog/pcwd_usb.c:416:24: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected int *__pu_addr @@     got int [noderef] __user *p @@
   drivers/watchdog/pcwd_usb.c:416:24: sparse:     expected int *__pu_addr
   drivers/watchdog/pcwd_usb.c:416:24: sparse:     got int [noderef] __user *p
>> drivers/watchdog/pcwd_usb.c:423:21: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected int const *__gu_addr @@     got int [noderef] __user *p @@
   drivers/watchdog/pcwd_usb.c:423:21: sparse:     expected int const *__gu_addr
   drivers/watchdog/pcwd_usb.c:423:21: sparse:     got int [noderef] __user *p
   drivers/watchdog/pcwd_usb.c:447:21: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected int const *__gu_addr @@     got int [noderef] __user *p @@
   drivers/watchdog/pcwd_usb.c:447:21: sparse:     expected int const *__gu_addr
   drivers/watchdog/pcwd_usb.c:447:21: sparse:     got int [noderef] __user *p
   drivers/watchdog/pcwd_usb.c:458:24: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected int *__pu_addr @@     got int [noderef] __user *p @@
   drivers/watchdog/pcwd_usb.c:458:24: sparse:     expected int *__pu_addr
   drivers/watchdog/pcwd_usb.c:458:24: sparse:     got int [noderef] __user *p
   drivers/watchdog/pcwd_usb.c:467:24: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected int *__pu_addr @@     got int [noderef] __user *p @@
   drivers/watchdog/pcwd_usb.c:467:24: sparse:     expected int *__pu_addr
   drivers/watchdog/pcwd_usb.c:467:24: sparse:     got int [noderef] __user *p
   drivers/watchdog/pcwd_usb.c: note: in included file (through include/linux/sched/task.h, include/linux/sched/signal.h, include/linux/rcuwait.h, ...):
   include/linux/uaccess.h:131:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void *to @@     got void [noderef] __user *to @@
   include/linux/uaccess.h:131:38: sparse:     expected void *to
   include/linux/uaccess.h:131:38: sparse:     got void [noderef] __user *to
   include/linux/uaccess.h:131:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const [noderef] __user *from @@     got void const *from @@
   include/linux/uaccess.h:131:42: sparse:     expected void const [noderef] __user *from
   include/linux/uaccess.h:131:42: sparse:     got void const *from
   drivers/watchdog/pcwd_usb.c: note: in included file (through include/linux/uaccess.h, include/linux/sched/task.h, include/linux/sched/signal.h, ...):
   arch/openrisc/include/asm/uaccess.h:246:55: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const *from @@     got void const [noderef] __user *from @@
   arch/openrisc/include/asm/uaccess.h:246:55: sparse:     expected void const *from
   arch/openrisc/include/asm/uaccess.h:246:55: sparse:     got void const [noderef] __user *from
   drivers/watchdog/pcwd_usb.c: note: in included file (through include/linux/sched/task.h, include/linux/sched/signal.h, include/linux/rcuwait.h, ...):
   include/linux/uaccess.h:131:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void *to @@     got void [noderef] __user *to @@
   include/linux/uaccess.h:131:38: sparse:     expected void *to
   include/linux/uaccess.h:131:38: sparse:     got void [noderef] __user *to
   include/linux/uaccess.h:131:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const [noderef] __user *from @@     got void const *from @@
   include/linux/uaccess.h:131:42: sparse:     expected void const [noderef] __user *from
   include/linux/uaccess.h:131:42: sparse:     got void const *from
   drivers/watchdog/pcwd_usb.c: note: in included file (through include/linux/uaccess.h, include/linux/sched/task.h, include/linux/sched/signal.h, ...):
   arch/openrisc/include/asm/uaccess.h:246:55: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const *from @@     got void const [noderef] __user *from @@
   arch/openrisc/include/asm/uaccess.h:246:55: sparse:     expected void const *from
   arch/openrisc/include/asm/uaccess.h:246:55: sparse:     got void const [noderef] __user *from

vim +1101 security/apparmor/lsm.c

56974a6fcfef69e John Johansen 2017-07-18  1066  
56974a6fcfef69e John Johansen 2017-07-18  1067  /**
56974a6fcfef69e John Johansen 2017-07-18  1068   * apparmor_socket_getpeersec_stream - get security context of peer
56974a6fcfef69e John Johansen 2017-07-18  1069   *
56974a6fcfef69e John Johansen 2017-07-18  1070   * Note: for tcp only valid if using ipsec or cipso on lan
56974a6fcfef69e John Johansen 2017-07-18  1071   */
56974a6fcfef69e John Johansen 2017-07-18  1072  static int apparmor_socket_getpeersec_stream(struct socket *sock,
56974a6fcfef69e John Johansen 2017-07-18  1073  					     char __user *optval,
56974a6fcfef69e John Johansen 2017-07-18  1074  					     int __user *optlen,
56974a6fcfef69e John Johansen 2017-07-18  1075  					     unsigned int len)
56974a6fcfef69e John Johansen 2017-07-18  1076  {
56974a6fcfef69e John Johansen 2017-07-18  1077  	char *name;
56974a6fcfef69e John Johansen 2017-07-18  1078  	int slen, error = 0;
56974a6fcfef69e John Johansen 2017-07-18  1079  	struct aa_label *label;
56974a6fcfef69e John Johansen 2017-07-18  1080  	struct aa_label *peer;
56974a6fcfef69e John Johansen 2017-07-18  1081  
56974a6fcfef69e John Johansen 2017-07-18  1082  	label = begin_current_label_crit_section();
56974a6fcfef69e John Johansen 2017-07-18  1083  	peer = sk_peer_label(sock->sk);
56974a6fcfef69e John Johansen 2017-07-18  1084  	if (IS_ERR(peer)) {
56974a6fcfef69e John Johansen 2017-07-18  1085  		error = PTR_ERR(peer);
56974a6fcfef69e John Johansen 2017-07-18  1086  		goto done;
56974a6fcfef69e John Johansen 2017-07-18  1087  	}
56974a6fcfef69e John Johansen 2017-07-18  1088  	slen = aa_label_asxprint(&name, labels_ns(label), peer,
56974a6fcfef69e John Johansen 2017-07-18  1089  				 FLAG_SHOW_MODE | FLAG_VIEW_SUBNS |
56974a6fcfef69e John Johansen 2017-07-18  1090  				 FLAG_HIDDEN_UNCONFINED, GFP_KERNEL);
56974a6fcfef69e John Johansen 2017-07-18  1091  	/* don't include terminating \0 in slen, it breaks some apps */
56974a6fcfef69e John Johansen 2017-07-18  1092  	if (slen < 0) {
56974a6fcfef69e John Johansen 2017-07-18  1093  		error = -ENOMEM;
56974a6fcfef69e John Johansen 2017-07-18  1094  	} else {
56974a6fcfef69e John Johansen 2017-07-18  1095  		if (slen > len) {
56974a6fcfef69e John Johansen 2017-07-18  1096  			error = -ERANGE;
56974a6fcfef69e John Johansen 2017-07-18  1097  		} else if (copy_to_user(optval, name, slen)) {
56974a6fcfef69e John Johansen 2017-07-18  1098  			error = -EFAULT;
56974a6fcfef69e John Johansen 2017-07-18  1099  			goto out;
56974a6fcfef69e John Johansen 2017-07-18  1100  		}
56974a6fcfef69e John Johansen 2017-07-18 @1101  		if (put_user(slen, optlen))
56974a6fcfef69e John Johansen 2017-07-18  1102  			error = -EFAULT;
56974a6fcfef69e John Johansen 2017-07-18  1103  out:
56974a6fcfef69e John Johansen 2017-07-18  1104  		kfree(name);
56974a6fcfef69e John Johansen 2017-07-18  1105  
56974a6fcfef69e John Johansen 2017-07-18  1106  	}
56974a6fcfef69e John Johansen 2017-07-18  1107  
56974a6fcfef69e John Johansen 2017-07-18  1108  done:
56974a6fcfef69e John Johansen 2017-07-18  1109  	end_current_label_crit_section(label);
56974a6fcfef69e John Johansen 2017-07-18  1110  
56974a6fcfef69e John Johansen 2017-07-18  1111  	return error;
56974a6fcfef69e John Johansen 2017-07-18  1112  }
56974a6fcfef69e John Johansen 2017-07-18  1113  

:::::: The code at line 1101 was first introduced by commit
:::::: 56974a6fcfef69ee0825bd66ed13e92070ac5224 apparmor: add base infastructure for socket mediation

:::::: TO: John Johansen <john.johansen@canonical.com>
:::::: CC: John Johansen <john.johansen@canonical.com>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 25154 bytes --]

             reply	other threads:[~2020-07-31  1:26 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-31  0:54 kernel test robot [this message]
2020-07-31  0:54 ` security/apparmor/lsm.c:1101:21: sparse: sparse: incorrect type in initializer (different address spaces) kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202007310833.wdH0K35A%lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild-all@lists.01.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luc.vanoostenryck@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.