Alex Ionescu wrote:
4) Browsing
some registry keys in regedit causes regedit to crash.
Err, this is because GCC is extremly stupid. It loads a stack structure
into ebx, and then the callback code becomes jmp(%ebx).
Could you elaborate. I didn't quite follow in what function/context it loads
ebx, and what function it jumps from/to, and where ebx wasn't what it was
assumed to be.
The problem is that it restores protected registers
before doing the
jmp, so ebx is reset to it's value before the function is called...
I guess this needs to be made __volatile,
It's just "volatile" (no leading underscores since it's a C keyword, not
a
language extension).
/Mike