1*673dc3d4SNico Weber // RUN: %clangxx_asan -O0 %s -o %t && not %run %t 2>&1 | FileCheck %s 2*673dc3d4SNico Weber // RUN: %clangxx_asan -O3 %s -o %t && not %run %t 2>&1 | FileCheck %s 3*673dc3d4SNico Weber 4*673dc3d4SNico Weber #include <assert.h> 5*673dc3d4SNico Weber #include <errno.h> 6*673dc3d4SNico Weber #include <glob.h> 7*673dc3d4SNico Weber #include <stdio.h> 8*673dc3d4SNico Weber #include <string.h> 9*673dc3d4SNico Weber 10*673dc3d4SNico Weber #include <sanitizer/linux_syscall_hooks.h> 11*673dc3d4SNico Weber 12*673dc3d4SNico Weber /* Test the presence of __sanitizer_syscall_ in the tool runtime, and general 13*673dc3d4SNico Weber sanity of their behaviour. */ 14*673dc3d4SNico Weber main(int argc,char * argv[])15*673dc3d4SNico Weberint main(int argc, char *argv[]) { 16*673dc3d4SNico Weber char buf[1000]; 17*673dc3d4SNico Weber __sanitizer_syscall_pre_recvmsg(0, buf - 1, 0); 18*673dc3d4SNico Weber // CHECK: AddressSanitizer: stack-buffer-{{.*}}erflow 19*673dc3d4SNico Weber // CHECK: READ of size {{.*}} at {{.*}} thread T0 20*673dc3d4SNico Weber // CHECK: #0 {{.*}} in __sanitizer_syscall{{.*}}recvmsg 21*673dc3d4SNico Weber return 0; 22*673dc3d4SNico Weber } 23