author | Lars Hjemli <hjemli@gmail.com> | 2011-05-23 21:10:37 (UTC) |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2011-05-23 21:17:10 (UTC) |
commit | c8ea73caabcb16ffb74baa70d35650027ed772c4 (patch) (side-by-side diff) | |
tree | 07061939e5568c89bd9d96914f7b61ca0b3b6fe7 | |
parent | 9afc883297b0d0943e9b358d2299950f33e8e5ed (diff) | |
download | cgit-c8ea73caabcb16ffb74baa70d35650027ed772c4.zip cgit-c8ea73caabcb16ffb74baa70d35650027ed772c4.tar.gz cgit-c8ea73caabcb16ffb74baa70d35650027ed772c4.tar.bz2 |
ui-repolist.c: do not return random/stale data from read_agefile
When git/date.c:parse_date() cannot parse its input it returns -1. But
read_agefile() checks if the result is different from zero, essentialy
returning random data from the date buffer when parsing fails. This
patch fixes the issue by verifying that the result from parse_date()
is positive.
Noticed-by: Julius Plenz <plenz@cis.fu-berlin.de>
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
-rw-r--r-- | ui-repolist.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/ui-repolist.c b/ui-repolist.c index 2c98668..e138f59 100644 --- a/ui-repolist.c +++ b/ui-repolist.c @@ -11,25 +11,25 @@ #include "ui-shared.h" time_t read_agefile(char *path) { time_t result; size_t size; char *buf; static char buf2[64]; if (readfile(path, &buf, &size)) return -1; - if (parse_date(buf, buf2, sizeof(buf2))) + if (parse_date(buf, buf2, sizeof(buf2)) > 0) result = strtoul(buf2, NULL, 10); else result = 0; free(buf); return result; } static int get_repo_modtime(const struct cgit_repo *repo, time_t *mtime) { char *path; struct stat s; struct cgit_repo *r = (struct cgit_repo *)repo; |