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)

Reply via email to