summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2013-01-02 19:25:38 +0100
committerFelix Fietkau <nbd@openwrt.org>2013-01-02 19:46:17 +0100
commitf7d33f95bf975246a1032392d207913d68897d16 (patch)
tree6f6e4ae24175374f5cead54b8224cb22442b7154
parentdd8f306793db60a2d79c7618d012e0466c581bcf (diff)
fix buffer handling for time formatting
-rw-r--r--file.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/file.c b/file.c
index b46f0d6..367ab3e 100644
--- a/file.c
+++ b/file.c
@@ -293,11 +293,11 @@ static time_t uh_file_date2unix(const char *date)
return 0;
}
-static char * uh_file_unix2date(time_t ts, char *buf)
+static char * uh_file_unix2date(time_t ts, char *buf, int len)
{
struct tm *t = gmtime(&ts);
- strftime(buf, sizeof(buf), "%a, %d %b %Y %H:%M:%S GMT", t);
+ strftime(buf, len, "%a, %d %b %Y %H:%M:%S GMT", t);
return buf;
}
@@ -317,9 +317,10 @@ static void uh_file_response_ok_hdrs(struct client *cl, struct stat *s)
if (s) {
ustream_printf(cl->us, "ETag: %s\r\n", uh_file_mktag(s, buf));
ustream_printf(cl->us, "Last-Modified: %s\r\n",
- uh_file_unix2date(s->st_mtime, buf));
+ uh_file_unix2date(s->st_mtime, buf, sizeof(buf)));
}
- ustream_printf(cl->us, "Date: %s\r\n", uh_file_unix2date(time(NULL), buf));
+ ustream_printf(cl->us, "Date: %s\r\n",
+ uh_file_unix2date(time(NULL), buf, sizeof(buf)));
}
static void uh_file_response_200(struct client *cl, struct stat *s)
@@ -482,7 +483,7 @@ static void uh_file_dirlist(struct client *cl, struct path_info *pi)
"<br /></small></li>",
pi->name, files[i]->d_name,
files[i]->d_name,
- uh_file_unix2date(s.st_mtime, buf),
+ uh_file_unix2date(s.st_mtime, buf, sizeof(buf)),
s.st_size / 1024.0);
*pathptr = 0;
@@ -501,7 +502,7 @@ static void uh_file_dirlist(struct client *cl, struct path_info *pi)
"<br /></small></li>",
pi->name, files[i]->d_name,
files[i]->d_name,
- uh_file_unix2date(s.st_mtime, buf),
+ uh_file_unix2date(s.st_mtime, buf, sizeof(buf)),
uh_file_mime_lookup(filename),
s.st_size / 1024.0);