diff --git a/sha1_name.c b/sha1_name.c
index 75a5a7e96f292bed344a7609fca2f3a45ba4314e..722fc35a6d98e1c260c6e14738ad3b2d41d924aa 100644 (file)
--- a/sha1_name.c
+++ b/sha1_name.c
/* basic@{time or number} format to query ref-log */
reflog_len = at = 0;
- if (str[len-1] == '}') {
+ if (len && str[len-1] == '}') {
for (at = 0; at < len - 1; at++) {
if (str[at] == '@' && str[at+1] == '{') {
reflog_len = (len-1) - (at+2);
else
nth = -1;
}
- if (0 <= nth)
+ if (100000000 <= nth) {
+ at_time = nth;
+ nth = -1;
+ } else if (0 <= nth)
at_time = 0;
else {
char *tmp = xstrndup(str + at + 2, reflog_len);