Many str*() functions in string.h, like strcmp() and strncpy(), just do memory comparison/copies without checking null terminators. strcmp(), in particular, actually returns a failure if the lengths are unequal, which is more secure but not valid behavior. This hasn't yet caused problems, but to avoid confusion, the string functions should be rewritten to comply with the C standard.