On Thu, Jun 10, 2021 at 09:06:44AM -0400, Jeff King wrote: > We can work around this by replacing our "did we hit the trailing NUL" > subscript dereference with a length check. We do not even have to pay > the cost for an extra strlen(), as we can pass our new length into > interpret_branch_name(), which was converting our "0" into a call to > strlen() anyway. > [...] > - if (0 < len && name[len] && buf.len) > + if (0 < len && len < namelen && buf.len) > strbuf_addstr(&buf, name + len); I guess another option would be to drop the check entirely. It is only protecting us from calling strbuf_addstr() with an empty string, which is a noop anyway (it would not even cause a useless allocation, since we know that buf is non-empty, and that it won't need to grow). I think I still prefer my original solution, though. -Peff