In Checksum::gen in util/checksum.h:
- there are up to 15 bytes left over after computing "a" and "b", but they are packed into the 8-byte word "c", so up to 7 may get lost.
- the bytes are extracted as char, not unsigned char, so they get sign extended then or'ed, so the previously packed bytes may get obscured by the sign bit of the new byte. This code may also be non-portable as it depends on the signedness of the char type.
The net result is that up to 14 of the last 15 bytes may get ignored in the hash. This seems highly unlikely to make a difference in practice however.