From: kernel test robot <lkp@intel.com> To: Sven Schnelle <svens@linux.ibm.com>, Paul Moore <paul@paul-moore.com>, Eric Paris <eparis@redhat.com> Cc: kbuild-all@lists.01.org, linux-audit@redhat.com, linux-kernel@vger.kernel.org Subject: Re: [PATCH 1/2] audit: add call argument to socketcall auditing Date: Tue, 3 May 2022 21:32:25 +0800 [thread overview] Message-ID: <202205032108.vBdGwIXf-lkp@intel.com> (raw) In-Reply-To: <20220503090212.1322050-1-svens@linux.ibm.com> Hi Sven, I love your patch! Yet something to improve: [auto build test ERROR on linus/master] [also build test ERROR on pcmoore-audit/next v5.18-rc5 next-20220503] [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/intel-lab-lkp/linux/commits/Sven-Schnelle/audit-add-call-argument-to-socketcall-auditing/20220503-170442 base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 9050ba3a61a4b5bd84c2cde092a100404f814f31 config: x86_64-randconfig-a013 (https://download.01.org/0day-ci/archive/20220503/202205032108.vBdGwIXf-lkp@intel.com/config) compiler: gcc-11 (Debian 11.2.0-20) 11.2.0 reproduce (this is a W=1 build): # https://github.com/intel-lab-lkp/linux/commit/b89caaec1c1bd3382c6cef08d08beadbaf808513 git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Sven-Schnelle/audit-add-call-argument-to-socketcall-auditing/20220503-170442 git checkout b89caaec1c1bd3382c6cef08d08beadbaf808513 # save the config file mkdir build_dir && cp config build_dir/.config make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All error/warnings (new ones prefixed by >>): net/socket.c: In function '__sys_getsockopt': net/socket.c:2206:13: warning: variable 'max_optlen' set but not used [-Wunused-but-set-variable] 2206 | int max_optlen; | ^~~~~~~~~~ net/socket.c: In function '__do_sys_socketcall': >> net/socket.c:2924:50: warning: passing argument 2 of 'audit_socketcall' makes pointer from integer without a cast [-Wint-conversion] 2924 | err = audit_socketcall(call, nargs[call] / sizeof(unsigned long), a); | ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~ | | | long unsigned int In file included from net/socket.c:82: include/linux/audit.h:643:62: note: expected 'long unsigned int *' but argument is of type 'long unsigned int' 643 | static inline int audit_socketcall(int nargs, unsigned long *args) | ~~~~~~~~~~~~~~~^~~~ >> net/socket.c:2924:15: error: too many arguments to function 'audit_socketcall' 2924 | err = audit_socketcall(call, nargs[call] / sizeof(unsigned long), a); | ^~~~~~~~~~~~~~~~ In file included from net/socket.c:82: include/linux/audit.h:643:19: note: declared here 643 | static inline int audit_socketcall(int nargs, unsigned long *args) | ^~~~~~~~~~~~~~~~ vim +/audit_socketcall +2924 net/socket.c 2896 2897 /* 2898 * System call vectors. 2899 * 2900 * Argument checking cleaned up. Saved 20% in size. 2901 * This function doesn't need to set the kernel lock because 2902 * it is set by the callees. 2903 */ 2904 2905 SYSCALL_DEFINE2(socketcall, int, call, unsigned long __user *, args) 2906 { 2907 unsigned long a[AUDITSC_ARGS]; 2908 unsigned long a0, a1; 2909 int err; 2910 unsigned int len; 2911 2912 if (call < 1 || call > SYS_SENDMMSG) 2913 return -EINVAL; 2914 call = array_index_nospec(call, SYS_SENDMMSG + 1); 2915 2916 len = nargs[call]; 2917 if (len > sizeof(a)) 2918 return -EINVAL; 2919 2920 /* copy_from_user should be SMP safe. */ 2921 if (copy_from_user(a, args, len)) 2922 return -EFAULT; 2923 > 2924 err = audit_socketcall(call, nargs[call] / sizeof(unsigned long), a); 2925 if (err) 2926 return err; 2927 2928 a0 = a[0]; 2929 a1 = a[1]; 2930 2931 switch (call) { 2932 case SYS_SOCKET: 2933 err = __sys_socket(a0, a1, a[2]); 2934 break; 2935 case SYS_BIND: 2936 err = __sys_bind(a0, (struct sockaddr __user *)a1, a[2]); 2937 break; 2938 case SYS_CONNECT: 2939 err = __sys_connect(a0, (struct sockaddr __user *)a1, a[2]); 2940 break; 2941 case SYS_LISTEN: 2942 err = __sys_listen(a0, a1); 2943 break; 2944 case SYS_ACCEPT: 2945 err = __sys_accept4(a0, (struct sockaddr __user *)a1, 2946 (int __user *)a[2], 0); 2947 break; 2948 case SYS_GETSOCKNAME: 2949 err = 2950 __sys_getsockname(a0, (struct sockaddr __user *)a1, 2951 (int __user *)a[2]); 2952 break; 2953 case SYS_GETPEERNAME: 2954 err = 2955 __sys_getpeername(a0, (struct sockaddr __user *)a1, 2956 (int __user *)a[2]); 2957 break; 2958 case SYS_SOCKETPAIR: 2959 err = __sys_socketpair(a0, a1, a[2], (int __user *)a[3]); 2960 break; 2961 case SYS_SEND: 2962 err = __sys_sendto(a0, (void __user *)a1, a[2], a[3], 2963 NULL, 0); 2964 break; 2965 case SYS_SENDTO: 2966 err = __sys_sendto(a0, (void __user *)a1, a[2], a[3], 2967 (struct sockaddr __user *)a[4], a[5]); 2968 break; 2969 case SYS_RECV: 2970 err = __sys_recvfrom(a0, (void __user *)a1, a[2], a[3], 2971 NULL, NULL); 2972 break; 2973 case SYS_RECVFROM: 2974 err = __sys_recvfrom(a0, (void __user *)a1, a[2], a[3], 2975 (struct sockaddr __user *)a[4], 2976 (int __user *)a[5]); 2977 break; 2978 case SYS_SHUTDOWN: 2979 err = __sys_shutdown(a0, a1); 2980 break; 2981 case SYS_SETSOCKOPT: 2982 err = __sys_setsockopt(a0, a1, a[2], (char __user *)a[3], 2983 a[4]); 2984 break; 2985 case SYS_GETSOCKOPT: 2986 err = 2987 __sys_getsockopt(a0, a1, a[2], (char __user *)a[3], 2988 (int __user *)a[4]); 2989 break; 2990 case SYS_SENDMSG: 2991 err = __sys_sendmsg(a0, (struct user_msghdr __user *)a1, 2992 a[2], true); 2993 break; 2994 case SYS_SENDMMSG: 2995 err = __sys_sendmmsg(a0, (struct mmsghdr __user *)a1, a[2], 2996 a[3], true); 2997 break; 2998 case SYS_RECVMSG: 2999 err = __sys_recvmsg(a0, (struct user_msghdr __user *)a1, 3000 a[2], true); 3001 break; 3002 case SYS_RECVMMSG: 3003 if (IS_ENABLED(CONFIG_64BIT)) 3004 err = __sys_recvmmsg(a0, (struct mmsghdr __user *)a1, 3005 a[2], a[3], 3006 (struct __kernel_timespec __user *)a[4], 3007 NULL); 3008 else 3009 err = __sys_recvmmsg(a0, (struct mmsghdr __user *)a1, 3010 a[2], a[3], NULL, 3011 (struct old_timespec32 __user *)a[4]); 3012 break; 3013 case SYS_ACCEPT4: 3014 err = __sys_accept4(a0, (struct sockaddr __user *)a1, 3015 (int __user *)a[2], a[3]); 3016 break; 3017 default: 3018 err = -EINVAL; 3019 break; 3020 } 3021 return err; 3022 } 3023 -- 0-DAY CI Kernel Test Service https://01.org/lkp
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com> To: Sven Schnelle <svens@linux.ibm.com>, Paul Moore <paul@paul-moore.com>, Eric Paris <eparis@redhat.com> Cc: linux-audit@redhat.com, kbuild-all@lists.01.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 1/2] audit: add call argument to socketcall auditing Date: Tue, 3 May 2022 21:32:25 +0800 [thread overview] Message-ID: <202205032108.vBdGwIXf-lkp@intel.com> (raw) In-Reply-To: <20220503090212.1322050-1-svens@linux.ibm.com> Hi Sven, I love your patch! Yet something to improve: [auto build test ERROR on linus/master] [also build test ERROR on pcmoore-audit/next v5.18-rc5 next-20220503] [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/intel-lab-lkp/linux/commits/Sven-Schnelle/audit-add-call-argument-to-socketcall-auditing/20220503-170442 base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 9050ba3a61a4b5bd84c2cde092a100404f814f31 config: x86_64-randconfig-a013 (https://download.01.org/0day-ci/archive/20220503/202205032108.vBdGwIXf-lkp@intel.com/config) compiler: gcc-11 (Debian 11.2.0-20) 11.2.0 reproduce (this is a W=1 build): # https://github.com/intel-lab-lkp/linux/commit/b89caaec1c1bd3382c6cef08d08beadbaf808513 git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Sven-Schnelle/audit-add-call-argument-to-socketcall-auditing/20220503-170442 git checkout b89caaec1c1bd3382c6cef08d08beadbaf808513 # save the config file mkdir build_dir && cp config build_dir/.config make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All error/warnings (new ones prefixed by >>): net/socket.c: In function '__sys_getsockopt': net/socket.c:2206:13: warning: variable 'max_optlen' set but not used [-Wunused-but-set-variable] 2206 | int max_optlen; | ^~~~~~~~~~ net/socket.c: In function '__do_sys_socketcall': >> net/socket.c:2924:50: warning: passing argument 2 of 'audit_socketcall' makes pointer from integer without a cast [-Wint-conversion] 2924 | err = audit_socketcall(call, nargs[call] / sizeof(unsigned long), a); | ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~ | | | long unsigned int In file included from net/socket.c:82: include/linux/audit.h:643:62: note: expected 'long unsigned int *' but argument is of type 'long unsigned int' 643 | static inline int audit_socketcall(int nargs, unsigned long *args) | ~~~~~~~~~~~~~~~^~~~ >> net/socket.c:2924:15: error: too many arguments to function 'audit_socketcall' 2924 | err = audit_socketcall(call, nargs[call] / sizeof(unsigned long), a); | ^~~~~~~~~~~~~~~~ In file included from net/socket.c:82: include/linux/audit.h:643:19: note: declared here 643 | static inline int audit_socketcall(int nargs, unsigned long *args) | ^~~~~~~~~~~~~~~~ vim +/audit_socketcall +2924 net/socket.c 2896 2897 /* 2898 * System call vectors. 2899 * 2900 * Argument checking cleaned up. Saved 20% in size. 2901 * This function doesn't need to set the kernel lock because 2902 * it is set by the callees. 2903 */ 2904 2905 SYSCALL_DEFINE2(socketcall, int, call, unsigned long __user *, args) 2906 { 2907 unsigned long a[AUDITSC_ARGS]; 2908 unsigned long a0, a1; 2909 int err; 2910 unsigned int len; 2911 2912 if (call < 1 || call > SYS_SENDMMSG) 2913 return -EINVAL; 2914 call = array_index_nospec(call, SYS_SENDMMSG + 1); 2915 2916 len = nargs[call]; 2917 if (len > sizeof(a)) 2918 return -EINVAL; 2919 2920 /* copy_from_user should be SMP safe. */ 2921 if (copy_from_user(a, args, len)) 2922 return -EFAULT; 2923 > 2924 err = audit_socketcall(call, nargs[call] / sizeof(unsigned long), a); 2925 if (err) 2926 return err; 2927 2928 a0 = a[0]; 2929 a1 = a[1]; 2930 2931 switch (call) { 2932 case SYS_SOCKET: 2933 err = __sys_socket(a0, a1, a[2]); 2934 break; 2935 case SYS_BIND: 2936 err = __sys_bind(a0, (struct sockaddr __user *)a1, a[2]); 2937 break; 2938 case SYS_CONNECT: 2939 err = __sys_connect(a0, (struct sockaddr __user *)a1, a[2]); 2940 break; 2941 case SYS_LISTEN: 2942 err = __sys_listen(a0, a1); 2943 break; 2944 case SYS_ACCEPT: 2945 err = __sys_accept4(a0, (struct sockaddr __user *)a1, 2946 (int __user *)a[2], 0); 2947 break; 2948 case SYS_GETSOCKNAME: 2949 err = 2950 __sys_getsockname(a0, (struct sockaddr __user *)a1, 2951 (int __user *)a[2]); 2952 break; 2953 case SYS_GETPEERNAME: 2954 err = 2955 __sys_getpeername(a0, (struct sockaddr __user *)a1, 2956 (int __user *)a[2]); 2957 break; 2958 case SYS_SOCKETPAIR: 2959 err = __sys_socketpair(a0, a1, a[2], (int __user *)a[3]); 2960 break; 2961 case SYS_SEND: 2962 err = __sys_sendto(a0, (void __user *)a1, a[2], a[3], 2963 NULL, 0); 2964 break; 2965 case SYS_SENDTO: 2966 err = __sys_sendto(a0, (void __user *)a1, a[2], a[3], 2967 (struct sockaddr __user *)a[4], a[5]); 2968 break; 2969 case SYS_RECV: 2970 err = __sys_recvfrom(a0, (void __user *)a1, a[2], a[3], 2971 NULL, NULL); 2972 break; 2973 case SYS_RECVFROM: 2974 err = __sys_recvfrom(a0, (void __user *)a1, a[2], a[3], 2975 (struct sockaddr __user *)a[4], 2976 (int __user *)a[5]); 2977 break; 2978 case SYS_SHUTDOWN: 2979 err = __sys_shutdown(a0, a1); 2980 break; 2981 case SYS_SETSOCKOPT: 2982 err = __sys_setsockopt(a0, a1, a[2], (char __user *)a[3], 2983 a[4]); 2984 break; 2985 case SYS_GETSOCKOPT: 2986 err = 2987 __sys_getsockopt(a0, a1, a[2], (char __user *)a[3], 2988 (int __user *)a[4]); 2989 break; 2990 case SYS_SENDMSG: 2991 err = __sys_sendmsg(a0, (struct user_msghdr __user *)a1, 2992 a[2], true); 2993 break; 2994 case SYS_SENDMMSG: 2995 err = __sys_sendmmsg(a0, (struct mmsghdr __user *)a1, a[2], 2996 a[3], true); 2997 break; 2998 case SYS_RECVMSG: 2999 err = __sys_recvmsg(a0, (struct user_msghdr __user *)a1, 3000 a[2], true); 3001 break; 3002 case SYS_RECVMMSG: 3003 if (IS_ENABLED(CONFIG_64BIT)) 3004 err = __sys_recvmmsg(a0, (struct mmsghdr __user *)a1, 3005 a[2], a[3], 3006 (struct __kernel_timespec __user *)a[4], 3007 NULL); 3008 else 3009 err = __sys_recvmmsg(a0, (struct mmsghdr __user *)a1, 3010 a[2], a[3], NULL, 3011 (struct old_timespec32 __user *)a[4]); 3012 break; 3013 case SYS_ACCEPT4: 3014 err = __sys_accept4(a0, (struct sockaddr __user *)a1, 3015 (int __user *)a[2], a[3]); 3016 break; 3017 default: 3018 err = -EINVAL; 3019 break; 3020 } 3021 return err; 3022 } 3023 -- 0-DAY CI Kernel Test Service https://01.org/lkp -- Linux-audit mailing list Linux-audit@redhat.com https://listman.redhat.com/mailman/listinfo/linux-audit
next prev parent reply other threads:[~2022-05-03 13:32 UTC|newest] Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-05-03 9:02 [PATCH 1/2] audit: add call argument to socketcall auditing Sven Schnelle 2022-05-03 9:02 ` Sven Schnelle 2022-05-03 9:02 ` [PATCH 2/2] audit: add filterkey to special audit messages Sven Schnelle 2022-05-03 9:02 ` Sven Schnelle 2022-05-03 16:57 ` Paul Moore 2022-05-03 16:57 ` Paul Moore 2022-05-04 5:22 ` Sven Schnelle 2022-05-04 5:22 ` Sven Schnelle 2022-05-03 13:32 ` [PATCH 1/2] audit: add call argument to socketcall auditing kernel test robot 2022-05-03 13:32 ` kernel test robot 2022-05-03 13:32 ` kernel test robot [this message] 2022-05-03 13:32 ` kernel test robot 2022-05-03 14:04 ` kernel test robot 2022-05-03 14:04 ` kernel test robot 2022-05-03 16:07 ` Paul Moore 2022-05-03 16:07 ` Paul Moore 2022-05-03 17:16 ` Steve Grubb 2022-05-03 17:16 ` Steve Grubb
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=202205032108.vBdGwIXf-lkp@intel.com \ --to=lkp@intel.com \ --cc=eparis@redhat.com \ --cc=kbuild-all@lists.01.org \ --cc=linux-audit@redhat.com \ --cc=linux-kernel@vger.kernel.org \ --cc=paul@paul-moore.com \ --cc=svens@linux.ibm.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: linkBe 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.