fix reflog approxidate parsing bug
[gitweb.git] / sha1_name.c
index 6c9c1c75adefe2d5e38212b75302368293c9137b..6298c37ae3a9b516ff75c122abf2181827f32bce 100644 (file)
@@ -352,8 +352,11 @@ static int get_sha1_basic(const char *str, int len, unsigned char *sha1)
                }
                if (0 <= nth)
                        at_time = 0;
-               else
-                       at_time = approxidate(str + at + 2);
+               else {
+                       char *tmp = xstrndup(str + at + 2, reflog_len);
+                       at_time = approxidate(tmp);
+                       free(tmp);
+               }
                if (read_ref_at(real_ref, at_time, nth, sha1, NULL,
                                &co_time, &co_tz, &co_cnt)) {
                        if (at_time)