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 ↗ | (On Diff #372780) | Why a separate abilist.txt? |
| compiler-rt/test/dfsan/force_zero.c | ||
| 26 | 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 ↗ | (On Diff #372780) | For separate test. Happy to combine them if you prefer. |
| compiler-rt/test/dfsan/force_zero.c | ||
| 26 | 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 ↗ | (On Diff #372780) | Yes, let's combine them for simplicity. |
| llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp | ||
| 149 | 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. | |
| 1218 | For consistency. | |
| llvm/test/Instrumentation/DataFlowSanitizer/Inputs/force_zero_abilist.txt | ||
| 1 ↗ | (On Diff #372780) | Let's also reuse the existing ABI list for llvm tests. |
| llvm/test/Instrumentation/DataFlowSanitizer/force_zero.ll | ||
| 10 | 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 | ||
|---|---|---|
| 152 | ||
| 155 | ||
| clang/docs/DataFlowSanitizer.rst | ||
|---|---|---|
| 141 | ||