This fixes PR33721 by a common technique of declaring a packed struct
to access unaligned integer fields. (See eg. linux kernel
include/vdso/unaligned.h) I've tidied the PR29856 fix for a similar
bug too (not that there was anything wrong with that fix).
PR 33721
PR 29856
* sframe.c (flip_fre_start_address): Use a packed struct to
access 2-byte and 4-byte unaligned fields. Make addr a void*.
(sframe_decode_fre_start_address): Similarly, and remove
unnecessary casts. Always set *fre_start_addr.