[Sanitizer] Fix the implementation of internal_fstat on LoongArch
authorYouling Tang <tangyouling@loongson.cn>
Tue, 22 Nov 2022 14:08:47 +0000 (22:08 +0800)
committerWeining Lu <luweining@loongson.cn>
Tue, 22 Nov 2022 14:16:11 +0000 (22:16 +0800)
If `pathname` is an empty string and the AT_EMPTY_PATH flag is specified in `flags`,
statx `pathname` argument is of type `const char *restrict`, so it should be `""`
instead of `0`.

Reviewed By: SixWeining, xen0n, xry111, lixing-star

Differential Revision: https://reviews.llvm.org/D138414

compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp

index f23ea9d..83d688a 100644 (file)
@@ -440,7 +440,7 @@ uptr internal_fstat(fd_t fd, void *buf) {
   return res;
 #      elif SANITIZER_LINUX && defined(__loongarch__)
   struct statx bufx;
-  int res = internal_syscall(SYSCALL(statx), fd, 0, AT_EMPTY_PATH,
+  int res = internal_syscall(SYSCALL(statx), fd, "", AT_EMPTY_PATH,
                              STATX_BASIC_STATS, (uptr)&bufx);
   statx_to_stat(&bufx, (struct stat *)buf);
   return res;