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-a014 
(https://download.01.org/0day-ci/archive/20220503/202205032119.la0im2sw-...@intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 
363b3a645a1e30011cc8da624f13dac5fd915628)
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/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
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross 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 <l...@intel.com>

All errors (new ones prefixed by >>):

   net/socket.c:2206:6: warning: variable 'max_optlen' set but not used 
[-Wunused-but-set-variable]
           int max_optlen;
               ^
>> net/socket.c:2924:68: error: too many arguments to function call, expected 
>> 2, have 3
           err = audit_socketcall(call, nargs[call] / sizeof(unsigned long), a);
                 ~~~~~~~~~~~~~~~~                                            ^
   include/linux/audit.h:643:19: note: 'audit_socketcall' declared here
   static inline int audit_socketcall(int nargs, unsigned long *args)
                     ^
   1 warning and 1 error generated.


vim +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

Reply via email to