In line 1666 of mp3-scanner.c from the the 0.2.3 release (right after debug logging “Found Xing header”):
xing_flags=*((int*)&buffer[index+fi.xing_offset+4+4]);
This can cause a problem on non-x86 based platforms where alignment matters. Certain files are causing mt-daapd to crash on my sparc linux machine with a bus error. This should be a memcpy, not a dereference and assignment since (index+fi.xing_offset) & 0x3 isn’t guaranteed.
Same for line 1674:
fi.number_of_frames=*((int*)&buffer[index+fi.xing_offset+4+8]);
These are the only two places I have found so far where this is being done. After making these changes it appears I am up and running.