summaryrefslogtreecommitdiff
path: root/src/basic/time-util.c
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2018-06-11 12:31:02 +0900
committerSven Eden <yamakuzure@gmx.net>2018-08-24 16:47:08 +0200
commit3cec34a443c76e06a21f0be01ce9eac936c8a6d4 (patch)
tree61479efb4868ea04c00545c020979625a7fa10dd /src/basic/time-util.c
parentec4b18ddb9cc1df4ac410614308c6f520d6c6c81 (diff)
util-lib: reject too long path for timedate_is_valid()
This should fix https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8827.
Diffstat (limited to 'src/basic/time-util.c')
-rw-r--r--src/basic/time-util.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/basic/time-util.c b/src/basic/time-util.c
index 71d6179ef..2e465296f 100644
--- a/src/basic/time-util.c
+++ b/src/basic/time-util.c
@@ -1326,6 +1326,9 @@ bool timezone_is_valid(const char *name, int log_level) {
if (slash)
return false;
+ if (p - name >= PATH_MAX)
+ return false;
+
t = strjoina("/usr/share/zoneinfo/", name);
fd = open(t, O_RDONLY|O_CLOEXEC);