summaryrefslogtreecommitdiffabout
authorLars Hjemli <hjemli@gmail.com>2011-05-23 21:10:37 (UTC)
committer Lars Hjemli <hjemli@gmail.com>2011-05-23 21:17:10 (UTC)
commitc8ea73caabcb16ffb74baa70d35650027ed772c4 (patch) (side-by-side diff)
tree07061939e5568c89bd9d96914f7b61ca0b3b6fe7
parent9afc883297b0d0943e9b358d2299950f33e8e5ed (diff)
downloadcgit-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>
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--ui-repolist.c2
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;