diff options
author | Elliott Hughes <enh@google.com> | 2016-07-29 13:11:04 -0700 |
---|---|---|
committer | Rob Landley <rob@landley.net> | 2016-08-01 14:54:54 -0500 |
commit | abf079b2d82cc3635863672371a2c53f8e940ba1 (patch) | |
tree | 787781a66d32a11aa6d400c24b30a6f3d657d8dd /toys/posix | |
parent | 8f3e0af6409e9d3cfe0370d93645ebd93d11aa0a (diff) | |
download | toybox-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')
-rw-r--r-- | toys/posix/touch.c | 2 |
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]; |