[Xymon] Fun with xymonlaunch and MAXTIME
Japheth Cleaver
cleaver at terabithia.org
Wed Feb 22 22:10:11 CET 2017
On 2/22/2017 1:06 PM, Ralph Mitchell wrote:
> Apparently the tasks.cfg MAXTIME option is not very tolerant of spacing:
>
> MAXTIME 10m - with two spaces, is interpreted as 10 seconds
> MAXTIME 10m - with one space, is interpreted as 600 seconds
>
> I think the problem lies at line 276 in xymon-4.3.28/common/xymonlaunch.c:
>
> tspec = p + strspn(p, "0123456789");
> switch (*tspec) {
> case 'm': curtask->maxruntime *= 60;
> break; /* Minutes */
> case 'h': curtask->maxruntime *= 3600;
> break; /* Hours */
> case 'd': curtask->maxruntime *= 86400;
> break; /* Days */
> }
>
> The pointer p is pointing to the first character after "MAXTIME ".
> That's fine as long as it points to a numeric string. If it doesn't
> point to a string of digits, tspec doesn't end up pointing to the
> multiplier, so MAXTIME is handled as seconds.
>
> Adding a space to the strspn string should fix it:
>
> tspec = p + strspn(p, " 0123456789");
>
> Similarly, at line 254, for the INTERVAL option.
Hi,
Yikes, yes we should definitely be more whitespace-tolerant here. It's
possible this has been the root for occasional unexpected behavior over
the years for some folks.
Thanks for the catch; this will be in the next update.
Regards,
-jc
More information about the Xymon
mailing list