perf bpf_skel augmented_raw_syscalls: Cap the socklen parameter using &= sizeof(saddr)
[linux-2.6-microblaze.git] / tools / perf / util / bpf_skel / augmented_raw_syscalls.bpf.c
index 0586c41..9c1d0b2 100644 (file)
@@ -187,8 +187,7 @@ int sys_enter_connect(struct syscall_enter_args *args)
         if (augmented_args == NULL)
                 return 1; /* Failure: don't filter */
 
-       if (socklen > sizeof(augmented_args->saddr))
-               socklen = sizeof(augmented_args->saddr);
+       socklen &= sizeof(augmented_args->saddr) - 1;
 
        bpf_probe_read(&augmented_args->saddr, socklen, sockaddr_arg);
 
@@ -206,8 +205,7 @@ int sys_enter_sendto(struct syscall_enter_args *args)
         if (augmented_args == NULL)
                 return 1; /* Failure: don't filter */
 
-       if (socklen > sizeof(augmented_args->saddr))
-               socklen = sizeof(augmented_args->saddr);
+       socklen &= sizeof(augmented_args->saddr) - 1;
 
        bpf_probe_read(&augmented_args->saddr, socklen, sockaddr_arg);