sha1_name: check @{-N} errors sooner
It's trivial to check for them in the @{N} parsing loop. Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com> Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
128fd54dae
commit
83d16bc7be
@ -448,7 +448,10 @@ static int get_sha1_basic(const char *str, int len, unsigned char *sha1)
|
||||
if (len && str[len-1] == '}') {
|
||||
for (at = len-4; at >= 0; at--) {
|
||||
if (str[at] == '@' && str[at+1] == '{') {
|
||||
if (at == 0 && str[2] == '-') {
|
||||
if (str[at+2] == '-') {
|
||||
if (at != 0)
|
||||
/* @{-N} not at start */
|
||||
return -1;
|
||||
nth_prior = 1;
|
||||
continue;
|
||||
}
|
||||
@ -497,10 +500,6 @@ static int get_sha1_basic(const char *str, int len, unsigned char *sha1)
|
||||
unsigned long co_time;
|
||||
int co_tz, co_cnt;
|
||||
|
||||
/* a @{-N} placed anywhere except the start is an error */
|
||||
if (str[at+2] == '-')
|
||||
return -1;
|
||||
|
||||
/* Is it asking for N-th entry, or approxidate? */
|
||||
for (i = nth = 0; 0 <= nth && i < reflog_len; i++) {
|
||||
char ch = str[at+2+i];
|
||||
|
Loading…
Reference in New Issue
Block a user