Fix bug where a failure becomes success on x86.

In libunwind, the unw_step function on x86, an error can get changed
into a success. This meant illegal frames were added that didn't really
exist. Even worse, this could cause crashes because these completely
garbage ip addresses were used to try and get another stack frame. This
lead to attempts to access illegal data, and if you get unlucky and the
map for the bad data was valid at one point, and invalid at the point
of unwind, you get a crash.

There is a small similar possibility of a stop unwind becoming a continue
on aarch64.

Bug: 26248094
Change-Id: Ic3fa3136a33c4c099b28005ed0c5234860813150
2 files changed