NULL pointer dereference in tai64nlocal

[email protected] Tue, 10 Sep 2013 18:56:58 +1000
Newsgroups gmane.comp.djb.syslog
Message-ID <[email protected]>
--azLHFNyN32YCQGCU
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Hi,

Had a bit of an explosion today with what I believe to be a corrupt timesta=
mp
in a logfile.

Ended up tracking it down to this:

# echo @ | tai64nlocal=20
Segmentation fault
# dmesg | tail -1
# [27512262.312802] tai64nlocal[9534]: segfault at 14 ip 00000000004007b4 s=
p 00007fff2cd2f230 error 4 in tai64nlocal[400000+2000]

Which, on my system appears to correspond to tai64nlocal.c:

55       t =3D localtime(&secs);
56       out(num,fmt_ulong(num,1900 + t->tm_year));

Which, appears to be due to localtime() being called with an unrepresentable
time, thus returning NULL.

--azLHFNyN32YCQGCU
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.21 (GNU/Linux)

iQIcBAEBAgAGBQJSLt7aAAoJEMHZnoZn5OSh/SMP/iXxM/Fo6yOzzX/QA2+8O7pQ
WCRP4XpBXyKoqkwg/U5YhneGIdaL2i9eIxBNoIYw86K4l3IZu2cv7eDPEX6ozCvY
4ohmr/NyGkg0de2E4Ge7zlWmjS0CloznlQm+S/NqPH6SdzBMfXl/ituAN1Zs3a1W
GyljmNUgcEzNuuj4pkoMSVaObspuvtuARbcixClOxufL2FqtxowweUjKDyyipjq+
T5doBgOtx9pZLMIdC4Dl4dSVYdhvMIG3ncSz5KuHzekOOuqV09mNTPLaO9bTbZ5J
sww9d5tpxzlSHY87sC/X5ZldeolcPZdvUlhzFOFdEK6SxVQSoDt7LBh2xlUeQ+Pd
odWIjZPkZO5IEXLUamZmt6jQVOk9pjPBDdkH7R7Gb98DDPnpKGETewCYE7R5v3Js
Ygpax7jx4BG8pSPPhNZpyF83u428UjjlC8DUnWSB+Ap8ZXkBF/2Dcao7fKh9HRlE
2M0dOB54objGHIXGM9ngLprG4Y3V/QNxYmNzaBWKkIbdUZOMlBfWJJAAemmZvKSk
On4BMj7p4msbs62Gkmu202HcRIbsV1zgGveLsyLpYY2wWLSNXl5xlGMRFgbbaqNX
1NyDusjlikIqMF4XDawZiLhMbYDWZWZSFc6yBFWaXguk0F49xo0QAMbXK/Pmw0l8
kDZVl78Z6RwE4/yaSCbQ
=BjZE
-----END PGP SIGNATURE-----

--azLHFNyN32YCQGCU--