>> Drop optimization level... > > -O3 and -O2 segfault. -O1 and -O0 do work and test passes.
This is definition of compiler bug. Indeed, looking at disassembler output: 0x805085e: movl 0x24(%esp,1),%esi 0x8050862: movl 0xffffff94(%esi),%esi 0x8050865: movl 0xffffff90(%esi),%edx <== segfault As we see 2nd instruction above overwrites input address loaded by 1st one and the result of 3rd is therefore deplorable. I mean 2nd instruction should have targeted some other register, not %esi, e.g. it could have been 'movl offset(%esi),%eax'. >> Test attached patch. > > | $ test/sha512t > | Testing SHA-512 ... passed. > | Testing SHA-384 ... passed. > > Excellent! Your patch works at any optimization level. Great. I'm applying it and dismissing the case. Thanks. A. ______________________________________________________________________ OpenSSL Project http://www.openssl.org Development Mailing List [email protected] Automated List Manager [EMAIL PROTECTED]
