[Xymon] Hobbitd crashing

Henrik Størner henrik at hswn.dk
Sun May 22 15:49:01 CEST 2011


Hi Elizabeth,

> (gdb) p rule
> $1 = (c_rule_t *) 0x168ad90

OK.

> (gdb) p *rule
[snip]
>        log = {logfile = 0x168ae90, matchexp = 0x0, matchone = 0x0,
>        ignoreexp = 0x168aed0, color = 4},
[snip]
> (gdb) p *(rule->rule.log.matchexp)
> Cannot access memory at address 0x0

Definitely not OK. The LOG check comes without any expression to match 
the log data against ("matchexp" is a NULL pointer). Which explains why 
it crashes when we try to use to expression in line 2491:

    if (!patternmatch(logdata, rule->rule.log.matchexp->pattern,
             rule->rule.log.matchexp->exp)) continue;

Now, the "matchexp" setting is built from the regex in the LOG 
statement. If this turns out to be an invalid regex, it should log a 
file in the xymond_client logfile like

    pcre compile 'your-pattern-here' failed (offset N): <error message>

So could you check if there's such a message in your log?

Still, it is incovenient that xymond_client crashes because of a 
configuration error. I'll look into improving that.


Regards,
Henrik



More information about the Xymon mailing list