]> git.ipfire.org Git - thirdparty/git.git/commit - date.c
date: check date overflow against time_t
authorJeff King <peff@peff.net>
Mon, 24 Feb 2014 07:39:45 +0000 (02:39 -0500)
committerJunio C Hamano <gitster@pobox.com>
Mon, 24 Feb 2014 18:12:58 +0000 (10:12 -0800)
commit7ca36d9398a85e7974d04f8fbd2c6adb088290e1
treee3ef065ab5fee09448ad78239edefb09c9ca927a
parentd4b8de0420ffcc7a654ddc6c69a96d3c1b25b4fa
date: check date overflow against time_t

When we check whether a timestamp has overflowed, we check
only against ULONG_MAX, meaning that strtoul has overflowed.
However, we also feed these timestamps to system functions
like gmtime, which expect a time_t. On many systems, time_t
is actually smaller than "unsigned long" (e.g., because it
is signed), and we would overflow when using these
functions.  We don't know the actual size or signedness of
time_t, but we can easily check for truncation with a simple
assignment.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
cache.h
date.c
fsck.c