BUG in history.cgi (+ fix)

Franky Van Liedekerke liedekef at telenet.be
Thu Jun 19 13:46:04 CEST 2008


Hi all,

I had some problems with history.cgi where it consistently coredumped on me.
After some searching, it seems that history.c assumes that each line in
nagios.log has a certain maximum lenght (MAX_INPUT_BUFFER) but some plugins
write more info away there (like the check_oracle_health plugin in my case).
But the issue is: when such a long line is found, history.c doesn't chop it
off after MAX_INPUT_BUFFER characters and as such coredumps ...
Solution: add the line

input[MAX_INPUT_BUFFER]='\x0';

at around line 551 in cgi/history.c (before the "strip(input);" line), so
the code becomes:

        printf("<P><DIV CLASS='logEntries'>\n");

        while(1){

                free(input);

                if(use_lifo==TRUE){
                        if((input=pop_lifo())==NULL)
                                break;
                        }
                else{
                        if((input=mmap_fgets(thefile))==NULL)
                                break;
                        }

                input[MAX_INPUT_BUFFER]='\x0';
                strip(input);

This solves my problem for now, but I don't know if it is the correct
solution of course ...

Franky
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.monitoring-lists.org/archive/developers/attachments/20080619/7adcff99/attachment.html>
-------------- next part --------------
-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
-------------- next part --------------
_______________________________________________
Nagios-devel mailing list
Nagios-devel at lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nagios-devel


More information about the Developers mailing list