Comment 20 for bug 1512323

Revision history for this message
Steve Langasek (vorlon) wrote :

stack trace points at new hashtable functionality within systemd.

The crash shows udevd is crashing with SIGBUS.

The new siphash24.c code is full of dereferences of uint8_t types that are then being handled as uint64_t values, as in le64toh() which is defined as:

static inline uint64_t le64toh(le64_t value) { return bswap_64_on_be((uint64_t __force)value); }

There is nothing in this code that guarantees 64-bit alignment of the source pointer. Dereferencing an unaligned pointer as a 64-bit int is non-portable, and it's precisely a SIGBUS that is raised in the case of unaligned access.