Age | Commit message (Collapse) | Author |
|
When converting number of days since epoch (32-bits) to seconds,
calculations using 32-bit `long` overflow for years above 2038. Solve
this by casting number of days to `time_t` just before final
multiplication.
Signed-off-by: Freddie Chopin <freddie.chopin@gmail.com>
|
|
Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
|
|
Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
|
|
Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
|
|
* libc/time/lcltime_r.c (localtime_r): Call _tzset_unlocked inside
TZ lock.
* libc/time/mktime.c (mktime): Ditto.
* libc/time/strftime.c (strftime, wcsftime): Ditto. Guard against
calling _tzset_unlocked more than once (baring recursion).
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
|
|
* libc/stdlib/setenv_r.c (_setenv_r): Remove tzset() call for TZ
definition.
* libc/time/lcltime_r.c (localtime_r): Add tzset() call
* libc/time/mktime.c (mktime): Ditto.
* libc/time/strftime.c (strftime, wcsftime): Ditto.
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
|
|
* libc/time/mktime.c: (mktime) Fix tm_yday, tm_mday updating when
timezone causes roll over.
|
|
being given as negative.
(mktime): Set tm_isdst=0 when !daylight.
|
|
accessing it.
|
|
* libc/include/sys/lock.h: Add void cast to avoid "statement has no
effect" warnings from gcc.
* libc/include/sys/stdio.h: Ditto.
* libc/include/sys/time.h: Correct gettimeofday() prototype.
* libc/stdlib/__exp10.c: Add #include "std.h" for function prototype.
* libc/stdlib/__ten_mu.c: Ditto.
* libc/stdlib/std.h: Correct __exp10's ANSI prototype.
* libc/stdlib/ldtoa.c: Change eiisinf definition to ANSI form. (Are
already others in file without _ansi method, so did not bother.)
* libc/stdlib/system.c: Use _ansi forms for function prototypes and
definitions.
* libc/time/mktime.c: Ditto.
* libc/misc/__dprintf.c: Ditto.
* libc/include/stdio.h: Add function prototypes for _fgetc_r,
_fgetpos_r, _fsetpos_r, _freopen_r, _rewind_r, freopen64, _freopen64_r,
_funopen_r, and _fopencookie_r.
* libc/include/reent.h: Add function prototype for _stat64_r, align
_execve_r prototype with POSIX definition for execve.
* libc/reent/execr.c: Align function prototype with POSIX definition.
* libc/stdio/asniprintf.c: Add #include "local.h".
* libc/stdio/vasniprintf.c: Ditto.
* libc/stdio/fread.c: Remove unused variable newcount.
* libc/stdio/local.h: Add function prototype for __sccl.
* libc/stdio/open_memstream.c: Remove unused variable flags.
* libc/stdio/vfscanf.c: Proper prototyping for ccfn, remove prototype
for __sccl since now in local.h.
* libc/string/memcpy.c: Add #include <string.h> (for real and for
traditional synopsis), remove extraneous stddef.h and limits.h.
* libc/syscalls/sysclose.c: Add #include <unistd.h>.
* libc/syscalls/sysfork.c: Ditto.
* libc/syscalls/sysgetpid.c: Ditto.
* libc/syscalls/sysexecve.c: Add #include <unistd.h>, align function
prototype with POSIX definition.
* libc/syscalls/sysfstat.c: Add #include <sys/stat.h>.
* libc/syscalls/sysgettod.c: Correct sys/times.h to sys/time.h.
* libc/syscalls/syskill.c: Add #include <signal.h>.
* libc/syscalls/syslink.c: Add #include <unistd.h>, fix prototype.
* libc/syscalls/sysunlink.c: Ditto.
* libc/syscalls/sysstat.c: Add #include <sys/stat.h>, fix prototype.
* libc/syscalls/syswait.c: Add #include <sys/wait.h>, fix prototype.
|
|
* libc/time/mktime.c (mktime): Fix tm_isdst value usage (allowing
any positive value from user (per std) rather than depending
upon 1).
|
|
* libc/include/time.h (__tzrule_struct): Make offset long, since
a 16-bit int overflows on a 12-hour offset.
* libc/sys/linux/include/time.h: Ditto.
* libc/time/mktime.c (mktime): Use new type of __tzrule.offset.
* libc/time/mktm_r.c: Ditto.
* libc/time/gettzinfo.c: Ditto.
* libc/time/strftime.c (strftime): Fix '%x' to deal with negative
years. Fix '%z' to use long, not int.
|
|
* libc/include/time.h [!CYGWIN](_timezone): Change to long.
(__tzrule_type, __tzinfo_type): New types.
(__gettzinfo): New function.
* libc/sys/linux/include/time.h: Ditto.
* libc/time/Makefile.am: Add gettzinfo.c.
* libc/time/Makefile.in: Regenerated.
* libc/time/local.h: Moved __tzrule_type to time.h.
* libc/time/mktime.c: Call __gettzinfo to reference
__tznorth, __tzyear, and __tzrule array.
* libc/time/mktm_r.c: Ditto.
* libc/time/strftime.c: Ditto.
* libc/time/tzset_r.c: Ditto. Also remove definition
of __tzrule which is now in gettzinfo.c. Change _timezone
references to not cast to time_t.
* libc/time/gettzinfo.c: New file.
|
|
* libc/include/time.h (tzset, _tzset_r): Added prototypes.
(strptime): Moved prototype to be within !__STRICT_ANSI__.
(_tzname, _daylight, _timezone): No long __CYGWIN__ only.
(tzname): Defined for all platforms.
(daylight, timezone): Defined only for CYGWIN.
* libc/sys/linux/machine/i386/crt0.c: Add call to tzset() after
environment set up.
* libc/stdlib/setenv_r.c (_setenv_r): Call tzset() if the TZ
environment variable is set.
* libc/time/Makefile.am: Add support for tzset.c, tzlock.c, and
tzset_r.c.
* libc/time/Makefile.in: Regenerated.
* libc/time/gmtime.c (gmtime): Changed to call gmtime_r.
* libc/time/gmtime_r.c (gmtime_r): Changed to call _mktm_r.
* libc/time/lcltime_r.c (lcltime_r): Ditto.
* libc/time/local.h: New local header file.
* libc/time/mktime.c (mktime): Add timezone support.
* libc/time/mktm_r.c: New file which is the common engine
for gmtime_r and lcltime_r. This code has timezone support.
* libc/time/strftime.c (strftime): Add %Z timezone support.
* libc/time/tzlock.c: New file containing timezone lock stubs.
* libc/time/tzset.c: New file containing tzset() routine.
* libc/time/tzset_r.c: New file containing _tzset_r and
internal routine for calculating timezone changes for specified year.
|
|
* libc/time/mktime.c: Add L suffix to _SEC_IN_xxxx constants.
|
|
|