sigchain: fix EnsureFrontOfChain on 32-bit.

On 32-bit, bionic's sigaction forwards to sigaction64, which gets
interposed by libsigchain's sigaction64, which returns the user's
signal handler, not the actual one. This leads to EnsureFrontOfChain's
check for whether it should reregister the signal handler to falsely
return true, which leads to explosions.

Bug: http://b/112677822
Test: /data/nativetest/art/arm/art_sigchain_tests/sigchain_test
Test: /data/nativetest64/art/arm64/art_sigchain_tests/sigchain_test
Change-Id: Ifbaa4448580d763f5ffd575fa2e77113a8108de6
2 files changed