aboutsummaryrefslogtreecommitdiff
path: root/toys/posix/touch.c
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2016-07-29 13:11:04 -0700
committerRob Landley <rob@landley.net>2016-08-01 14:54:54 -0500
commitabf079b2d82cc3635863672371a2c53f8e940ba1 (patch)
tree787781a66d32a11aa6d400c24b30a6f3d657d8dd /toys/posix/touch.c
parent8f3e0af6409e9d3cfe0370d93645ebd93d11aa0a (diff)
downloadtoybox-abf079b2d82cc3635863672371a2c53f8e940ba1.tar.gz
Fix touch(1) date parsing on tzcode-derived systems.
The IANA tzcode implementation of mktime (used on Android and BSDs) sets errno in some cases where it doesn't return -1 to indicate failure, so the existing test always failed on those systems. I don't think glibc ever sets errno (which is fine by ISO C, but not POSIX). Other uses of mktime in toybox are already fine. This one would have been caught by the existing tests if I was running them on the device :-(
Diffstat (limited to 'toys/posix/touch.c')
-rw-r--r--toys/posix/touch.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/toys/posix/touch.c b/toys/posix/touch.c
index 22a1e2e8..cd7dd53d 100644
--- a/toys/posix/touch.c
+++ b/toys/posix/touch.c
@@ -97,7 +97,7 @@ void touch_main(void)
errno = 0;
ts->tv_sec = mktime(&tm);
- if (!s || *s || errno == EOVERFLOW) perror_exit("bad '%s'", date);
+ if (!s || *s || ts->tv_sec == -1) perror_exit("bad '%s'", date);
}
ts[1]=ts[0];