Re: [PATCH 5/5] path.c: don't call the match function without value in trie_find()
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Oct 23, 2019, 04:01 UTC
- Message-ID
- <xmqqa79si003.fsf@gitster-ct.c.googlers.com>
- In-Reply-To
- <20191021205703.GB4348@szeder.dev>
SZEDER Gábor <szeder.dev@gmail.com> writes:
Show 11 quoted lines
>> - b9317d55a3 added two new keys to the trie: 'logs/refs/rewritten' >> and 'logs/refs/worktree', next to the already existing >> 'logs/refs/bisect'. This resulted in a trie node with the path >> 'logs/refs', which didn't exist before, and which doesn't have a > > Oops, I missed the trailing slash, that must be 'logs/refs/'! > >> value attached. A query for 'logs/refs/' finds this node and then >> hits that one callsite of the match function which doesn't check >> for the value's existence, and thus invokes the match function >> with NULL as value.
Given that the trie is maintained by hand in common_list[], I wonder if we can mechanically catch errors like the one b9317d55a3 added, by perhaps having a self-test function that a t/helper/ program calls to perform consistency check after the "git" gets built.
Thanks.