this looks like it's clearing out any remaining bytes if STR_SIZE > slen. What if someone changes STR_SIZE later on to be less than slen? I'd throw in an assert before this call that STR_SIZE >= slen.