Package: pound
Version: 2.0-1
Severity: important
Tags: patch
Was getting this line in my logs every time a request was made to pound.
It would close the connection immediately, without sending anything, and
report this.
Apr 4 15:57:35 elmer pound: MONITOR: worker exited on signal 11, restarting...
Not cool. Gdb said the segfaulting happened in trying to compile a regex
that didn't exist, while trying to figure out session foo (I don't track
sessions at all in my configuration).
Research pulled up this:
http://www.apsis.ch/pound/pound_list/archive/2006/2006-02/1139101111000#1139101111000
Unclear whether a new pound version has been released since then, but
the fix definitely has not been applied. I took Robert's suggestion at
the bottom, and got the attached patch. It fixes the segfaults.
--
paul
-- System Information:
Debian Release: testing/unstable
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: i386 (i686)
Shell: /bin/sh linked to /bin/bash
Kernel: Linux 2.6.15-1-k7
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
Versions of packages pound depends on:
ii libc6 2.3.6-4 GNU C Library: Shared libraries an
ii libssl0.9.8 0.9.8a-8 SSL shared libraries
pound recommends no packages.
-- no debconf information
diff -ur pound-2.0/svc.c good-pound-2.0/svc.c
--- pound-2.0/svc.c 2006-02-01 04:46:10.000000000 -0700
+++ good-pound-2.0/svc.c 2006-04-04 16:21:14.000000000 -0600
@@ -651,6 +651,8 @@
{
char key[KEY_SIZE + 1];
+ if (svc->sess_type != S_COOKIE && svc->sess_type != S_HEADER)
+ return;
pthread_mutex_lock(&svc->mut);
if(get_HEADERS(key, svc, headers))
if(sess_find(svc->sessions, key) == NULL)