summaryrefslogtreecommitdiffstats
path: root/compiler-rt/include
diff options
context:
space:
mode:
authorKostya Serebryany <kcc@google.com>2019-06-13 20:11:06 +0000
committerKostya Serebryany <kcc@google.com>2019-06-13 20:11:06 +0000
commit6b936d88a46b716977445966e124af9e3d300f52 (patch)
tree27dd00d902759d51772b393579d01bb5ca69fcce /compiler-rt/include
parentad81d427caaf71f096f85c19a6e3cea749b24051 (diff)
downloadbcm5719-llvm-6b936d88a46b716977445966e124af9e3d300f52.tar.gz
bcm5719-llvm-6b936d88a46b716977445966e124af9e3d300f52.zip
[dfsan] Introduce dfsan_flush().
Summary: dfsan_flush() allows to restart tain tracking from scratch in the same process. The primary purpose right now is to allow more efficient data flow tracing for DFT fuzzing: https://github.com/google/oss-fuzz/issues/1632 Reviewers: pcc Reviewed By: pcc Subscribers: delcypher, #sanitizers, llvm-commits Tags: #llvm, #sanitizers Differential Revision: https://reviews.llvm.org/D63037 llvm-svn: 363321
Diffstat (limited to 'compiler-rt/include')
-rw-r--r--compiler-rt/include/sanitizer/dfsan_interface.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/compiler-rt/include/sanitizer/dfsan_interface.h b/compiler-rt/include/sanitizer/dfsan_interface.h
index b6edf22ad04..c189ee55790 100644
--- a/compiler-rt/include/sanitizer/dfsan_interface.h
+++ b/compiler-rt/include/sanitizer/dfsan_interface.h
@@ -79,6 +79,12 @@ dfsan_label dfsan_has_label_with_desc(dfsan_label label, const char *desc);
/// Returns the number of labels allocated.
size_t dfsan_get_label_count(void);
+/// Flushes the DFSan shadow, i.e. forgets about all labels currently associated
+/// with the application memory. Will work only if there are no other
+/// threads executing DFSan-instrumented code concurrently.
+/// Use this call to start over the taint tracking within the same procces.
+void dfsan_flush(void);
+
/// Sets a callback to be invoked on calls to write(). The callback is invoked
/// before the write is done. The write is not guaranteed to succeed when the
/// callback executes. Pass in NULL to remove any callback.
OpenPOWER on IntegriCloud