[Nagiosplug-devel] Patch: check_time returns OK if time is before or equal 1.1.1970
Thomas Guyot-Sionnest
dermoth at aei.ca
Wed May 2 07:29:06 CEST 2007
On 01/05/07 10:15 AM, Matthias Flacke wrote:
> Hello list,
>
> if a machine - perhaps due to a crash - gets a date before 1970
> check_time returns a wrong OK result even if the diff_time seems to be
> reasonable:
>
> $ date
> Thu Jan 1 00:01:01 CET 1970
> $ ./check_time -w 5 -c 10 -H ntp1.fau.de
> TIME OK - 3116935377 second time difference|time=0s;;;0 offset=-1178031919s;5;10;0
>
> The problem lies in the signed var diff_time which can get negative and
> then for sure is smaller than the positive thresholds warning_diff or
> critical_diff.
>
> A small patch changes time_t diff_time into uint32_t and works fine for
> me.
This seems to be very arch-specific; to reproduce it on both my x86_64
and i386 I had to replace time_t by int16_t.
I changed a bit your patch to:
1. Have server_time unsigned long as well (server_time comes from
ntohl() which return type ulong)
2. Remove unneeded casts
The attached patch have been committed to CVS.
Thanks,
Thomas
-------------- next part --------------
A non-text attachment was scrubbed...
Name: check_time.unsigned_diff.patch
Type: text/x-patch
Size: 1609 bytes
Desc: not available
URL: <http://nagios-plugins.org/archive/devel/attachments/20070502/11cc86df/attachment.bin>
More information about the Devel
mailing list