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] == '}') {
|
if (len && str[len-1] == '}') {
|
||||||
for (at = len-4; at >= 0; at--) {
|
for (at = len-4; at >= 0; at--) {
|
||||||
if (str[at] == '@' && str[at+1] == '{') {
|
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;
|
nth_prior = 1;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -497,10 +500,6 @@ static int get_sha1_basic(const char *str, int len, unsigned char *sha1)
|
|||||||
unsigned long co_time;
|
unsigned long co_time;
|
||||||
int co_tz, co_cnt;
|
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? */
|
/* Is it asking for N-th entry, or approxidate? */
|
||||||
for (i = nth = 0; 0 <= nth && i < reflog_len; i++) {
|
for (i = nth = 0; 0 <= nth && i < reflog_len; i++) {
|
||||||
char ch = str[at+2+i];
|
char ch = str[at+2+i];
|
||||||
|
Loading…
Reference in New Issue
Block a user