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

limits the continuation at the call forkpoint in the promiscuous mode #971

Merged
merged 2 commits into from
Aug 13, 2019

Conversation

gitoleg
Copy link
Contributor

@gitoleg gitoleg commented Aug 13, 2019

Context

In the promiscuous mode we fork a new machine on each new call, so that if the function doesn't return for any reason, we can continue exploration of the code located after the call.

Problem

The stored continuation wasn't limited and was capturing the whole execution path, including the path in which the function was actually returning. That lead to quite funny false positives in our analysis.

Solution

The continuation is now explicitly delimited with halt.

We had a bug so far when pathes that were taken in
the primus promiscuous mode sometimes were far away
from the real ones.
That was possible because a forked continuation could
return and an execution would continue from a forked
point.

This PR fixes this bug and a forked continuation
never returns.
@ivg ivg changed the title fixes paths in the primus promiscuous mode limits stored continuation at the call fork point in the promiscuous mode Aug 13, 2019
@ivg ivg changed the title limits stored continuation at the call fork point in the promiscuous mode limits the continuation at the call forkpoint in the promiscuous mode Aug 13, 2019
@ivg
Copy link
Member

ivg commented Aug 13, 2019

Since in 1.6 we do not test promiscuous mode at all (unlike 2.x where we do), I don't see any reason to wait for the tests to pass, so I'm merging this bypassing our CI.

@ivg ivg merged commit c599519 into BinaryAnalysisPlatform:master Aug 13, 2019
@gitoleg gitoleg deleted the fix-primus-promiscuous branch May 13, 2020 21:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants