Xymon Mailing List Archive search

segfault in hobbit-enadis.cgi in xymon-4.3.0-beta1

list Henrik Størner
Thu, 26 Feb 2009 11:16:19 +0100
Message-Id: <user-c6df28f1ae01@xymon.invalid>

On Tue, Feb 24, 2009 at 07:09:22PM +0100, Frank Gruellich wrote:
Hi,

we tried to install xymon-4.3.0-beta1 today and it disabled the
Enable/Disable page for some reason.  Further investigations showed,
that hobbit-enadis.cgi segfaults everytimes
I think this patch will also take care of the underlying cause
for this: http://www.xymon.com/hobbiton/2009/02/msg00140.html

And now comes the "When I'm grown up I'll be a coder!" part.  I just
see, that respstr is initialized with NULL and given to sendtobbd() by
reference, but I can't figure out if it's modified (set to a valid
value) within this function.  So the brave patch I can only give is:

[rpmbuilder at fighter xymon-4.3.0-beta1]$ diff -u lib/strfunc.c.orig lib/strfunc.c
--- lib/strfunc.c.orig  2009-02-24 18:23:06.000000000 +0100
+++ lib/strfunc.c       2009-02-24 18:24:21.000000000 +0100
@@ -118,7 +118,7 @@

 void addtobuffer(strbuffer_t *buf, char *newtext)
 {
-	strbuf_addtobuffer(buf, newtext, strlen(newtext));
+	if (newtext) strbuf_addtobuffer(buf, newtext, strlen(newtext));
 }

 void addtostrbuffer(strbuffer_t *buf, strbuffer_t *newtext)
[rpmbuilder at fighter xymon-4.3.0-beta1]$

Basically this can't be wrong because calling strlen with NULL is
probably a bad idea.

You're right, it cannot be wrong :-) For the current bug it is a
working band-aid, although it doesn't solve the real issue. But
it is a sensible thing to do nonetheless. I've added it to my
sourcetree:

$ svn commit -m "strbuffer_addtobuffer: Dont try to do strlen() if passed an empty string. From Frank Gruellich" lib/strfunc.c
Sending        lib/strfunc.c
Transmitting file data .
Committed revision 6165.

(So I guess you're now a coding adolescent :-))


Regards,
Henrik