I suspect the author of the hash function thought this wouldn't add more than 4 bits:
h = (h << 4) + *name++;
But as one should know, two n-bit numbers can create an n+1-bit result when added due to carry.