-rw-r--r-- | ui-repolist.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/ui-repolist.c b/ui-repolist.c index ab050c7..c23232c 100644 --- a/ui-repolist.c +++ b/ui-repolist.c | |||
@@ -6,33 +6,34 @@ | |||
6 | * (see COPYING for full license text) | 6 | * (see COPYING for full license text) |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <time.h> | 9 | #include <time.h> |
10 | 10 | ||
11 | #include "cgit.h" | 11 | #include "cgit.h" |
12 | #include "html.h" | 12 | #include "html.h" |
13 | #include "ui-shared.h" | 13 | #include "ui-shared.h" |
14 | 14 | ||
15 | time_t read_agefile(char *path) | 15 | time_t read_agefile(char *path) |
16 | { | 16 | { |
17 | FILE *f; | 17 | FILE *f; |
18 | static char buf[64], buf2[64]; | 18 | static char buf[64], buf2[64]; |
19 | 19 | ||
20 | if (!(f = fopen(path, "r"))) | 20 | if (!(f = fopen(path, "r"))) |
21 | return -1; | 21 | return -1; |
22 | fgets(buf, sizeof(buf), f); | 22 | if (fgets(buf, sizeof(buf), f) == NULL) |
23 | return -1; | ||
23 | fclose(f); | 24 | fclose(f); |
24 | if (parse_date(buf, buf2, sizeof(buf2))) | 25 | if (parse_date(buf, buf2, sizeof(buf2))) |
25 | return strtoul(buf2, NULL, 10); | 26 | return strtoul(buf2, NULL, 10); |
26 | else | 27 | else |
27 | return 0; | 28 | return 0; |
28 | } | 29 | } |
29 | 30 | ||
30 | static void print_modtime(struct cgit_repo *repo) | 31 | static void print_modtime(struct cgit_repo *repo) |
31 | { | 32 | { |
32 | char *path; | 33 | char *path; |
33 | struct stat s; | 34 | struct stat s; |
34 | 35 | ||
35 | path = fmt("%s/%s", repo->path, ctx.cfg.agefile); | 36 | path = fmt("%s/%s", repo->path, ctx.cfg.agefile); |
36 | if (stat(path, &s) == 0) { | 37 | if (stat(path, &s) == 0) { |
37 | cgit_print_age(read_agefile(path), -1, NULL); | 38 | cgit_print_age(read_agefile(path), -1, NULL); |
38 | return; | 39 | return; |