Package: ngrep Version: 1.44-2 Severity: important Tags: security ngrep's signal handler, clean_exit(), calls free() and other cleanup functions in a non-idempotent way. There is an easy way to trigger the bug by running "ngrep . | cat", then pressing Ctrl-C. ngrep will get a SIGINT signal from the shell, and a SIGPIPE signal from the dying cat process, resulting in clean_exit() being called twice.
Adding some code like this at the beginning of clean_exit() probably fixes the issue: static volatile int cleaned = 0; if(cleaned++) exit(sig); This is probably a security issue, too, because the data ngrep is handling comes from the network, but it does not seem to be easily exploitable (famous last words, I know). Feel free to remove the security tag if you disagree, but a process running as root dumping core does not seem right to me in any case. Also the argument for clean_exit seems wrong to me, signal(2) says int, not int32_t. -- System Information: Debian Release: testing/unstable APT prefers unstable APT policy: (500, 'unstable'), (50, 'experimental') Architecture: i386 (i686) Shell: /bin/sh linked to /bin/bash Kernel: Linux 2.6.17.11 Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Versions of packages ngrep depends on: ii libc6 2.3.6.ds1-6 GNU C Library: Shared libraries ii libpcap0.8 0.9.5-1 System interface for user-level pa ii libpcre3 6.7-1 Perl 5 Compatible Regular Expressi ngrep recommends no packages. -- no debconf information -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]