Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
What's the motivation for this feature?
I think discard already returns 0 labels. When do we also need to store 0 labels?
compiler-rt/test/dfsan/Inputs/force_zero_abilist.txt | ||
---|---|---|
1 | Why a separate abilist.txt? | |
compiler-rt/test/dfsan/force_zero.c | ||
25 | Wouldn't this also pass if we used uninstrumented or discard in the ABI list? |
The motivation for this change is to remove taint in functions which write out their return data...
e.g.
void GenerateData(char* out_buf, int out_buf_len) { ... }
This feature allows us to untaint the data produced by this function.
compiler-rt/test/dfsan/Inputs/force_zero_abilist.txt | ||
---|---|---|
1 | For separate test. Happy to combine them if you prefer. | |
compiler-rt/test/dfsan/force_zero.c | ||
25 | For the return value yes, but not for the shadow of the contents of the the out pointer. |
Please also update the documentation: https://clang.llvm.org/docs/DataFlowSanitizer.html#abi-list
compiler-rt/test/dfsan/Inputs/force_zero_abilist.txt | ||
---|---|---|
1 | Yes, let's combine them for simplicity. | |
llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp | ||
150 | Nit: Could we make the distinction between uninstrumented and instrumented functions a little clearer? I think we only use functional and discard with uninstrumented, while we only use force_zero_labels with instrumented. | |
1212 | For consistency. | |
llvm/test/Instrumentation/DataFlowSanitizer/Inputs/force_zero_abilist.txt | ||
1 | Let's also reuse the existing ABI list for llvm tests. | |
llvm/test/Instrumentation/DataFlowSanitizer/force_zero.ll | ||
9 | Let's check that 0 is being stored specifically to SHADOW_PTR. |
Please also update the documentation: https://clang.llvm.org/docs/DataFlowSanitizer.html#abi-list
llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp | ||
---|---|---|
156 | ||
159 |
clang/docs/DataFlowSanitizer.rst | ||
---|---|---|
141 ↗ | (On Diff #373065) |
Why a separate abilist.txt?