# HG changeset patch # User heydowns # Date 1245076710 0 # Node ID 964d08f7b46f5b9a195173c3770c68a9b260ddcb # Parent ff2358195bc76e442085e7fa483fb876280bf811 Fix unaligned accesses by doing bytewise access until aligned, then continuing in 32-bit quantities. Fixes crash observed on sparc during FATE mlp test. Patch by Ramiro. diff -r ff2358195bc7 -r 964d08f7b46f mlp.c --- a/mlp.c Sun Jun 14 22:41:30 2009 +0000 +++ b/mlp.c Mon Jun 15 14:38:30 2009 +0000 @@ -96,6 +96,8 @@ uint32_t scratch = 0; const uint8_t *buf_end = buf + buf_size; + for (; ((intptr_t) buf & 3) && buf < buf_end; buf++) + scratch ^= *buf; for (; buf < buf_end - 3; buf += 4) scratch ^= *((const uint32_t*)buf);