-
Notifications
You must be signed in to change notification settings - Fork 274
2 full-slicer crashes #2653
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
Comments
The first issue is addressed in PR #2736 |
The second in PR #2741. |
I am running on CBMC with both of the above PR's cherry picked on and I get the following invariant violation from running `goto-instrument --full-slice A.binary B.binary'
A.binary is here |
With a different binary, I get the following invariant from running
C.binary here: |
The problem with A.binary is fixed with PR #2822. |
tolerate two cases of imprecision in value_set_fi; addresses issue #2653
To recreate both of these issues you will need this Xen binary:
https://drive.google.com/file/d/1Vco57D_iMhQ6N1EXqLTmF1wC9WiSN3mZ/view?usp=sharing
And this branch of cbmc:
https://github.com/diffblue/cbmc/tree/remove_asm_fix
(if you use develop, a different invariant is violated)
Issue 1
To recreate:
This triggers either this invariant: https://github.com/diffblue/cbmc/blob/develop/src/pointer-analysis/value_set_fi.cpp#L1282, or this invariant: https://github.com/diffblue/cbmc/blob/develop/src/pointer-analysis/value_set_fi.cpp#L412
The problem seems to be dereferencing pointers that are NULL. A temporary fix is to introduce this check before these invariants
if(expr.op0().id() == ID_null_object) return;
.Issue 2
I've no idea why removing the function pointers in a separate step produces a different result to this, but it does. To recreate:
This terminates with "identifier not found", which comes from value_set_domain_fit::transform being called on something with no identifier and no LOC on the rhs.
The text was updated successfully, but these errors were encountered: