On 15/07/17 21:11, René Scharfe wrote: > Exit early when asked to prune an index that contains no > entries to begin with. This avoids pointer arithmetic on > istate->cache, which is possibly NULL in that case. > > Found with Clang's UBSan. > > Signed-off-by: Rene Scharfe <l.s.r@xxxxxx> > --- > builtin/ls-files.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/builtin/ls-files.c b/builtin/ls-files.c > index b8514a0029..adf572da68 100644 > --- a/builtin/ls-files.c > +++ b/builtin/ls-files.c > @@ -362,7 +362,7 @@ static void prune_index(struct index_state *istate, > int pos; > unsigned int first, last; > > - if (!prefix) > + if (!prefix || !istate->cache_nr) > return; > pos = index_name_pos(istate, prefix, prefixlen); > if (pos < 0) My patch looked like: - if (!prefix) + if (!prefix || !istate->cache || istate->cache_nr == 0) ... which is probably a bit 'belt-n-braces'. ;-) ATB, Ramsay Jones