Page 1 of 1

Re: [Nagios-devel] fix segfault when sending host notifications -

Posted: Tue Jul 26, 2011 12:30 am
by Guest
Applied - Thanks!

Ethan Galstad


Michael Friedrich wrote:
> hi,
>
> hacking around in Icinga Core, the patch on the nagios-exp.git
> repository on git.op5.org for using local macros on the notifications
> came up with a bug on the host notifications.
> basically, a memset was missing in order to allocate memory before
> accessing/freeing the macro struct. See over here
> https://dev.icinga.org/issues/1703 and/or below. On Icinga GIT you will
> recognize the commit already.
>
>
> start gdb
>
> ~/nagios/nagios-exp $ sudo gdb base/nagios
>
> (gdb) run /usr/local/nagios/etc/nagios.cfg
> Starting program: nagios/nagios-exp/base/nagios
> /usr/local/nagios/etc/nagios.cfg
> [Thread debugging using libthread_db enabled]
>
> Nagios Core 3.3.1
> Copyright (c) 2009-2011 Nagios Core Development Team and Community
> Contributors
> Copyright (c) 1999-2009 Ethan Galstad
> Last Modified: 02-13-2011
> License: GPL
>
> Website: http://www.nagios.org
> Nagios 3.3.1 starting... (PID=10221)
> Local time is Wed Jul 13 17:47:18 CEST 2011
> [New Thread 0x40a00940 (LWP 10224)]
> [New Thread 0x41401940 (LWP 10225)]
>
>
> send a custom host notification
>
> # /usr/bin/printf "[1310543176]
> SEND_CUSTOM_HOST_NOTIFICATION;localhost;2;nagiosadmin;foobar" >
> /usr/local/nagios/var/rw/nagios.cmd
>
>
> watch it die ...
>
> ARGS: localhost;2;nagiosadmin;foobar
>
> Program received signal SIGSEGV, Segmentation fault.
> 0x0000003fe247273e in free () from /lib64/libc.so.6
>
> attached is a patch, which fixes this accordingly and applies cleanly to
> nagios-exp HEAD.
>
> Nagios 3.3.1 starting... (PID=13983)
> Local time is Wed Jul 13 18:00:23 CEST 2011
> [New Thread 0x40a00940 (LWP 13986)]
> [New Thread 0x41401940 (LWP 13987)]
> ARGS: localhost;2;nagiosadmin;foobar
> Detaching after fork from child process 14060.
>
> feel free to use the patch or introduce a proper solution :-)
>
>
> kind regards,
> Michael
>
>
> backtrace.
>
> (gdb) bt full
> #0 0x0000003fe247273e in free () from /lib64/libc.so.6
> No symbol table info available.
> #1 0x000000000042fa91 in clear_volatile_macros_r (mac=0x7fffffffdf00) at
> ../common/macros.c:2824
> this_customvariablesmember =
> next_customvariablesmember =
> x = 2
> #2 0x0000000000439b99 in host_notification (hst=0x6b8440, type=99,
> not_author=0x6b4d00 "nagiosadmin", not_data=0x6b5230 "foobar",
> options=2) at notifications.c:1041
> temp_notification =
> temp_contact =
> current_time =
> start_time = {tv_sec = 1310572223, tv_usec = 700585}
> end_time = {tv_sec = 7012920, tv_usec = 7}
> escalated = 0
> result =
> contacts_notified =
> increment_notification_number =
> mac = {x = {0x0, 0x0, 0x20 , 0x0, 0x64000000
> , 0x0, 0x0, 0x0, 0x0,
> 0x0, 0x0, 0x0, 0x0, 0xa , 0x5c out of bounds>,
> 0xffffffff0000000a , 0x480b01
> "s\n", 0x0, 0x25 ,
> 0x1 , 0x21 ,
> 0x100000001 ,
> 0x490ab8 "d\n", 0x0, 0x0, 0x3fe248d98f "\205\300\017\204\231\001", 0x0,
> 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
> 0x1 , 0x0, 0x3000000018 out of bounds>, 0x7fffffffe380 "\300\352\340\302>",
> 0x801 , 0x9802f bounds>, 0x1 ,
> 0x81a4 , 0x0, 0x0, 0x8a3 out of bounds>, 0x1000 ,
> 0x10 , 0x4e1dbeb0 bounds>, 0x0,
> 0x4aef1ace , 0x0, 0x4aef1ace 0x4aef1ace out of bounds>, 0x0, 0x0, 0x0, 0x0, 0x0,
> 0x0, 0x0, 0x3fe27529e0 "", 0x3fe2520afb "/etc/localtime", 0xf 0xf out of bounds>, 0x69e890 "/etc/localtime",
> 0x3fe27535a0

...[email truncated]...


This post was automatically imported from historical nagios-devel mailing list archives
Original poster: [email protected]