| --- busybox-1.21.0/archival/libarchive/decompress_unxz.c |
| +++ busybox-1.21.0-platform/archival/libarchive/decompress_unxz.c |
| @@ -30,8 +30,8 @@ static uint32_t xz_crc32(const uint8_t * |
| /* We use arch-optimized unaligned accessors */ |
| #define get_unaligned_le32(buf) ({ uint32_t v; move_from_unaligned32(v, buf); SWAP_LE32(v); }) |
| #define get_unaligned_be32(buf) ({ uint32_t v; move_from_unaligned32(v, buf); SWAP_BE32(v); }) |
| -#define put_unaligned_le32(val, buf) move_to_unaligned16(buf, SWAP_LE32(val)) |
| -#define put_unaligned_be32(val, buf) move_to_unaligned16(buf, SWAP_BE32(val)) |
| +#define put_unaligned_le32(val, buf) move_to_unaligned32(buf, SWAP_LE32(val)) |
| +#define put_unaligned_be32(val, buf) move_to_unaligned32(buf, SWAP_BE32(val)) |
| |
| #include "unxz/xz_dec_bcj.c" |
| #include "unxz/xz_dec_lzma2.c" |
| --- busybox-1.21.0/include/platform.h |
| +++ busybox-1.21.0-platform/include/platform.h |
| @@ -228,7 +228,7 @@ typedef uint32_t bb__aliased_uint32_t FI |
| # define move_from_unaligned32(v, u32p) (memcpy(&(v), (u32p), 4)) |
| # define move_to_unaligned16(u16p, v) do { \ |
| uint16_t __t = (v); \ |
| - memcpy((u16p), &__t, 4); \ |
| + memcpy((u16p), &__t, 2); \ |
| } while (0) |
| # define move_to_unaligned32(u32p, v) do { \ |
| uint32_t __t = (v); \ |