about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorLars Hjemli2011-05-23 23:10:37 +0200
committerLars Hjemli2011-05-23 23:17:10 +0200
commitc8ea73caabcb16ffb74baa70d35650027ed772c4 (patch)
tree07061939e5568c89bd9d96914f7b61ca0b3b6fe7
parentAvoid null pointer dereference in cgit_print_diff(). (diff)
downloadcgit-c8ea73caabcb16ffb74baa70d35650027ed772c4.tar.gz
cgit-c8ea73caabcb16ffb74baa70d35650027ed772c4.zip
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.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
@@ -20,7 +20,7 @@ time_t read_agefile(char *path)
20 if (readfile(path, &buf, &size)) 20 if (readfile(path, &buf, &size))
21 return -1; 21 return -1;
22 22
23 if (parse_date(buf, buf2, sizeof(buf2))) 23 if (parse_date(buf, buf2, sizeof(buf2)) > 0)
24 result = strtoul(buf2, NULL, 10); 24 result = strtoul(buf2, NULL, 10);
25 else 25 else
26 result = 0; 26 result = 0;