Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Tue, 13 Oct 2015 18:42:04 -0400
From: Rich Felker <dalias@...c.org>
To: musl@...ts.openwall.com
Subject: Re: [PATCHv3 1/3] fix matching errors for overwritten
 registers in x86 CFI generation script

On Tue, Oct 13, 2015 at 01:28:50PM +0200, Alex Dowad wrote:
> thanks to R. Felker for noticing 2 separate problems:
> 
> - binary ops like ADD, AND, etc. overwrite the 2nd operand, not the 1st.
>   this confusion resulted from mixing up Intel and GNU asm syntax.
> 
> - the regexps used to identify clobbered registers would erroneously match
>   index registers. in other words, the following asm:
> 
>     mov $0, (%eax,%ebx,4)
> 
> ....would cause EBX to be considered as overwritten, which might prevent a
> debugger from displaying a variable's value in a higher stack frame.
> ---
> 
> Here is the latest iteration. I have merged 2 previously separate commits, and
> fixed up the matching of registers (for the purpose of identifying overwritten
> registers).
> 
> As usual, thanks for the feedback. AD

Thanks! I'm committing them all now. I'm sorry for not catching this
before -- I realized that the index register thing was also an
existing bug in mov handling, not just a new bug added in the operand
order patch, so I split it out into a separate commit. I did basic
regression testing on i386 (making sure gdb backtrace from syscalls
still works) and tested that the x86_64 also seems to work (it does).

Rich

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.