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

Address Heapster Implication Prover Bug (Word Equality) #1512

Merged
merged 1 commit into from
Nov 15, 2021

Conversation

ChrisEPhifer
Copy link
Member

Previously, the function implLLVMFieldTryProveWordEq had a case like this:

  _ ->
    implDropM y p >>> implLLVMFieldSetTrue x (llvmFieldSetEqVar fp y) >>>
    return Nothing

The pattern-match here is on the permission left on top of the stack by an elimination as performed by elimOrsExistsNamesM; in the above version, this is being ignored, and the previous permission p is propagated to implDropM.

This is incorrect, as elimOrsExistsNamesM can, of course, perform an elimination and change the permission at the top of the stack. Fortunately, the correction is trivial:

  p' ->
    implDropM y p' >>> implLLVMFieldSetTrue x (llvmFieldSetEqVar fp y) >>>
    return Nothing

Thank you to @eddywestbrook for catching this!

@ChrisEPhifer ChrisEPhifer added type: bug Issues reporting bugs or unexpected/unwanted behavior subsystem: heapster Issues specifically related to memory verification using Heapster labels Nov 15, 2021
@ChrisEPhifer ChrisEPhifer self-assigned this Nov 15, 2021
Copy link
Contributor

@eddywestbrook eddywestbrook left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm Eddy Westbrook, and I approve this change

@eddywestbrook eddywestbrook added PR: ready to merge Magic flag for pull requests to ask Mergify to merge given an approval and a successful CI run and removed PR: ready to merge Magic flag for pull requests to ask Mergify to merge given an approval and a successful CI run labels Nov 15, 2021
@mergify mergify bot merged commit 0e69e18 into master Nov 15, 2021
@mergify mergify bot deleted the heapster/fix-impl-word-eq-prover branch November 15, 2021 19:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
PR: ready to merge Magic flag for pull requests to ask Mergify to merge given an approval and a successful CI run subsystem: heapster Issues specifically related to memory verification using Heapster type: bug Issues reporting bugs or unexpected/unwanted behavior
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants