1 // RUN: %clangxx_msan -std=c++11 -O0 -g %s -o %t && %run %t 2 3 #include <assert.h> 4 #include <fcntl.h> 5 #include <sanitizer/msan_interface.h> 6 #include <stdlib.h> 7 #include <sys/stat.h> 8 #include <sys/types.h> 9 #include <unistd.h> 10 main(void)11int main(void) { 12 struct file_handle *handle = reinterpret_cast<struct file_handle *>( 13 malloc(sizeof(*handle) + MAX_HANDLE_SZ)); 14 handle->handle_bytes = MAX_HANDLE_SZ; 15 16 int mount_id; 17 int res = name_to_handle_at(AT_FDCWD, "/dev/null", handle, &mount_id, 0); 18 assert(!res); 19 __msan_check_mem_is_initialized(&mount_id, sizeof(mount_id)); 20 __msan_check_mem_is_initialized(&handle->handle_bytes, 21 sizeof(handle->handle_bytes)); 22 __msan_check_mem_is_initialized(&handle->handle_type, 23 sizeof(handle->handle_type)); 24 __msan_check_mem_is_initialized(&handle->f_handle, handle->handle_bytes); 25 26 free(handle); 27 return 0; 28 } 29