diff --git a/xwin.c b/xwin.c index 09a2351..c98ee22 100644 --- a/xwin.c +++ b/xwin.c @@ -802,9 +802,10 @@ translate24to32(const uint8 * data, uint8 * out, uint8 * end) #else REPEAT4 ( - *((uint32 *) out) = *((uint32 *) data); - out += 4; - data += 3; + /* Only read 3 bytes. Reading 4 bytes means reading beyound buffer. */ + *((uint32 *) out) = *((uint16 *) data) + (*((uint8 *) data + 2) << 16); + out += 4; + data += 3; ) #endif /* *INDENT-ON* */