[compiler-rt] fa7c01e - [Sanitizers] intercept fparseln on freebsd
David Carlier via llvm-commits
llvm-commits at lists.llvm.org
Tue Sep 14 11:14:38 PDT 2021
Author: David Carlier
Date: 2021-09-14T19:13:45+01:00
New Revision: fa7c01e5784b7564a94029ca60dd3f9a8ca825b6
URL: https://github.com/llvm/llvm-project/commit/fa7c01e5784b7564a94029ca60dd3f9a8ca825b6
DIFF: https://github.com/llvm/llvm-project/commit/fa7c01e5784b7564a94029ca60dd3f9a8ca825b6.diff
LOG: [Sanitizers] intercept fparseln on freebsd
Reviewed By: vitalybuka, emaste
Differential Revision: https://reviews.llvm.org/D109753
Added:
compiler-rt/test/sanitizer_common/TestCases/FreeBSD/fparseln.cpp
Modified:
compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h
Removed:
################################################################################
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h b/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h
index eca20a91f264d..ee683da3edc81 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h
@@ -540,7 +540,7 @@
#define SANITIZER_INTERCEPT_MODCTL SI_NETBSD
#define SANITIZER_INTERCEPT_CAPSICUM SI_FREEBSD
#define SANITIZER_INTERCEPT_STRTONUM (SI_NETBSD || SI_FREEBSD)
-#define SANITIZER_INTERCEPT_FPARSELN SI_NETBSD
+#define SANITIZER_INTERCEPT_FPARSELN (SI_NETBSD || SI_FREEBSD)
#define SANITIZER_INTERCEPT_STATVFS1 SI_NETBSD
#define SANITIZER_INTERCEPT_STRTOI SI_NETBSD
#define SANITIZER_INTERCEPT_CAPSICUM SI_FREEBSD
diff --git a/compiler-rt/test/sanitizer_common/TestCases/FreeBSD/fparseln.cpp b/compiler-rt/test/sanitizer_common/TestCases/FreeBSD/fparseln.cpp
new file mode 100644
index 0000000000000..f805f3159ab15
--- /dev/null
+++ b/compiler-rt/test/sanitizer_common/TestCases/FreeBSD/fparseln.cpp
@@ -0,0 +1,26 @@
+// RUN: %clangxx -O0 -g %s -o %t -lutil && %run %t 2>&1 | FileCheck %s
+
+#include <assert.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <libutil.h>
+
+int main(void) {
+ printf("fparseln\n");
+
+ FILE *fp = fopen("/etc/fstab", "r");
+ assert(fp);
+
+ int flags = FPARSELN_UNESCALL;
+ const char *delim = "\\\\#";
+ size_t lineno = 0, len;
+ char *line;
+ while ((line = fparseln(fp, &len, &lineno, delim, flags))) {
+ printf("lineno: %zu, length: %zu, line: %s\n", lineno, len, line);
+ free(line);
+ }
+
+ // CHECK: fparseln
+
+ return 0;
+}
More information about the llvm-commits
mailing list