[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [xymon] parsing bug in hobbit-clients.cfg
- To: xymon (at) xymon.com
- Subject: Re: [xymon] parsing bug in hobbit-clients.cfg
- From: Henrik "Størner" <henrik (at) hswn.dk>
- Date: Mon, 22 Nov 2010 21:52:00 +0000 (UTC)
- Newsgroups: lists.hobbit
- Organization: Linux Users Inc.
- References: <4CE66548.7020007 (at) phys.ethz.ch> <4CE66548.7020007 (at) phys.ethz.ch> <4CE6A88E.3010004 (at) phys.ethz.ch>
- User-agent: nn/6.7.3
In <4CE6A88E.3010004 (at) phys.ethz.ch> Elmar Heeb <heeb (at) phys.ethz.ch> writes:
>On 11/19/2010 12:53 PM, Elmar Heeb wrote:
>> Suppose you have the following entry in hobbit-clients.cfg:
>>
>> HOST=blog.example.com,example.com
>> PROC apache
>>
>> then the PROC test will be ignored for example.com. If the two hosts are
>> reversed, i.e.
>>
>> HOST=example.com,blog.example.com
>> PROC apache
>>
>> then the PROC test will be done for both hosts. I tried with a few
>> variations on this and it appears that any later string in the comma
>> separated list will be ignored if it is a substring of a string that
>> appeared earlier. The same goes for EXHOSTS and probably most other
>> selectors.
>>
>> This bug is present in at least versions 4.3.0 beta2 (from Debian
>> lenny-backports) and 4.2.0 (from Debian lenny).
>I have narrowed down the bug to the namematch subroutine in
>lib/matching.c and attached a patch.
>The old code (which is the same in 4.2.0 and the svn trunk version)
>indeed explains the wrong behaviour. Lacking a preceeding comma as a
>guard character essentially made any non-comma character a negating
>match and not just an '!'. The patch explicitly tests for ",%s," and
>",!%s," and thus makes sure that a partial match cannot prevent a later
>full match.
Thank You for a very detailed bug-report. Providing a simple testcase
was especially helpful. I considered using your suggested patch, but
instead decided to rewrite the routine since this turned out to be a
cleaner/simpler solution. So fixed in rev 6598.
Regards,
Henrik