> It seems the `else` is not needed (since when the if branch is taken, we return from the func).
By that same logic, this review comment is not needed, since compiler vendors don't charge license fees by the number of keywords. ;-) Joking aside, we don't really have a project style preference for this case.
> nul-terminate -> null-terminate
NUL is a common abbreviation for the zero byte (but not for zero pointers). See the ascii manpage.