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

Fix regression in amd64.mov with 32-bit values >= 0x80000000 #843

Merged
merged 1 commit into from
Jan 10, 2017

Conversation

zachriggle
Copy link
Member

Fixes #841
Caused by: #504 (9ca377c)

@zachriggle zachriggle self-assigned this Jan 10, 2017
@zachriggle zachriggle added the bug label Jan 10, 2017
@zachriggle zachriggle added this to the 2.3 milestone Jan 10, 2017
@zachriggle
Copy link
Member Author

zachriggle commented Jan 10, 2017

Added doctests for this situation. The root cause was that we were down-sizing the register from rax to eax (since 0xffffffff can be set directly via eax), but we converted to a signed representation with the packed 32-bit bytes, which incorrectly caused shellcraft to believe that the value was a valid signed integer which could be pushed directly.

@zachriggle zachriggle changed the base branch from dev to stable January 10, 2017 19:12
@zachriggle zachriggle force-pushed the issue_841 branch 3 times, most recently from a538e49 to ae78d77 Compare January 10, 2017 20:30
@zachriggle zachriggle merged commit cb4991c into Gallopsled:stable Jan 10, 2017
@zachriggle
Copy link
Member Author

@idolf ready for forward-merge whenever you have time <3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants