git-commit-vandalism/refs
Michael Haggerty b9c8e7f2fb prefix_ref_iterator: don't trim too much
The `trim` parameter can be set independently of `prefix`. So if some
caller were to set `trim` to be greater than `strlen(prefix)`, we
could end up pointing the `refname` field of the iterator past the NUL
of the actual reference name string.

That can't happen currently, because `trim` is always set either to
zero or to `strlen(prefix)`. But even the latter could lead to
confusion, if a refname is exactly equal to the prefix, because then
we would set the outgoing `refname` to the empty string.

And we're about to decouple the `prefix` and `trim` arguments even
more, so let's be cautious here. Report a bug if ever asked to trim a
reference whose name is not longer than `trim`.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-05-23 14:29:52 +09:00
..
files-backend.c files-backend: use die("BUG: ..."), not die("internal error: ...") 2017-05-23 14:29:52 +09:00
iterator.c prefix_ref_iterator: don't trim too much 2017-05-23 14:29:52 +09:00
ref-cache.c refs/files-backend: convert many internals to struct object_id 2017-05-08 15:12:58 +09:00
ref-cache.h refs/files-backend: convert many internals to struct object_id 2017-05-08 15:12:58 +09:00
refs-internal.h ref_iterator_begin_fn(): fix docstring 2017-05-23 14:29:52 +09:00