The "hash" function used strncpy on data that would have NUL bytes, ending the copy prematurely and causing collisions between objects.