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.
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.