get_sha1: handle special case $commit^{/}
Empty regex pattern should always match. But the exact behavior of regexec() may vary. Because it always matches anyway, we can just return 'matched' without calling regex machinery. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
32574b68c5
commit
4322842acf
@ -599,6 +599,13 @@ static int peel_onion(const char *name, int len, unsigned char *sha1)
|
||||
int ret;
|
||||
struct commit_list *list = NULL;
|
||||
|
||||
/*
|
||||
* $commit^{/}. Some regex implementation may reject.
|
||||
* We don't need regex anyway. '' pattern always matches.
|
||||
*/
|
||||
if (sp[1] == '}')
|
||||
return 0;
|
||||
|
||||
prefix = xstrndup(sp + 1, name + len - 1 - (sp + 1));
|
||||
commit_list_insert((struct commit *)o, &list);
|
||||
ret = get_sha1_oneline(prefix, sha1, list);
|
||||
|
Loading…
Reference in New Issue
Block a user