[Pkg-nagios-devel] Bug#743493: send_nsca signal handling is undefined behaviour, causes SEGVs

Matthew Vernon mcv21 at cam.ac.uk
Thu Apr 3 11:58:05 UTC 2014

Package: nsca
Version: 2.9.1-2
Severity: important
Tags: upstream, patch
Control: found -1 2.7.2


I tripped over this bug because send_nsca was SEGVing on a machine
where another high-priority process was chewing up nearly all the
CPU. Our cron scripts just complained about SEGV, but running it on
the console resulted in:

Error: Timeout after 10 seconds
Segmentation fault

On investigation, this is because send_nsca's alarm_handler function
(installed as the handler for SIGALRM) does all sorts of things that
are undefined in a signal handler, such as printf, memset, free.

I attach a simple patch that replaces the buggy signal handler with
one that emits an error message and then exits. I'm not convinced that
there's enough merit in the memory-"cleaning" that do_exit does to do
the harder work of trying to sort that out.



-- System Information:
Debian Release: 7.4
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 3.2.0-4-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages nsca depends on:
ii  confget                1.03-1
ii  debconf [debconf-2.0]  1.5.49
ii  libc6                  2.13-38+deb7u1
ii  libmcrypt4             2.5.8-3.1
ii  nsca-client            2.9.1-2

nsca recommends no packages.

Versions of packages nsca suggests:
pn  nagios-plugins-basic | nagios-plugins  <none>
pn  nagios3                                <none>

-- debconf information excluded
-------------- next part --------------
A non-text attachment was scrubbed...
Name: send_nsca.diff
Type: text/x-diff
Size: 520 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/pkg-nagios-devel/attachments/20140403/9220368d/attachment.diff>

More information about the Pkg-nagios-devel mailing list