> Found by the https://github.com/xiw/stack tool and then I checked the > generated asm (gcc and clang) to confirm. > > In the check "if (d0 && tmp_ulong)" tmp_ulong always evaluates to true > because the compiler optimizes out the tmp_ulong value to true because > (tmp_ulong = zz >> d1;) zz >> d1 has according to the compiler (LLVM) > a logical right-shift overflow.
What's right-shift overflow? In either case, are you sure about it being optimized away because it always evaluates to true? Thing is that if tmp_ulong is 0, then xor-ing with it won't have effect on result. I mean check for d0 alone would actually produce same outcome, wouldn't it? _______________________________________________ openssl-dev mailing list To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-dev
