Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Run our instrumentation after dfsan #17

Open
3 tasks
mcopik opened this issue Feb 25, 2020 · 1 comment
Open
3 tasks

Run our instrumentation after dfsan #17

mcopik opened this issue Feb 25, 2020 · 1 comment
Labels
bug Something isn't working enhancement New feature or request

Comments

@mcopik
Copy link
Collaborator

mcopik commented Feb 25, 2020

We decided to run dfsan after our instrumentation because we didn't know how to deal with dfsan's optimization that store labels in register variables instead of memory. Now we know right API calls and we could resolve this issue.

The current setting, while it works, leads to problems on LLVM builds with enabled assertions. There, dfsan performs some standard sanity checks and detects that we retval TLS variable to detect taint variable of called function.

  • Add a test that leads to dfsan optimizing and storing taint value locally
  • Change our taint reading function to use dfsan internal API
  • Change the order of instrumentation
@mcopik mcopik added bug Something isn't working enhancement New feature or request labels Feb 25, 2020
@mcopik
Copy link
Collaborator Author

mcopik commented Apr 26, 2020

It seems that dfsan pass needs to be run to resolve dfsan_get_label calls. Perhaps we can not use explicitly TLS variables of return value from a function?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant