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)