Package: pound
Version: 2.6-3.1
Severity: normal

Dear Maintainer,

the pound source code contains a bug waiting for a semaphore. After the 
semaphore has been signaled a thread has to check again if the queue contains 
entries. In a system with a high number of threads that is likely not the case. 
Therefore, a while-loop instead of an if is required.

The patch is quite simple:

--- pound.orig  2014-02-06 14:03:54.112718385 +0100
+++ pound.c     2014-02-06 14:04:02.604718653 +0100
@@ -155,7 +155,7 @@
     thr_arg *res;
 
     (void)pthread_mutex_lock(&arg_mut);
-    if(first == NULL)
+    while(first == NULL)
         (void)pthread_cond_wait(&arg_cond, &arg_mut);
     if((res = first) != NULL)
         if((first = first->next) == NULL)

Regards,
Jesper
-- System Information:
Debian Release: 7.3
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.32-5-amd64 (SMP w/2 CPU cores)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages pound depends on:
ii  libc6        2.13-38
ii  libpcre3     1:8.30-5
ii  libssl1.0.0  1.0.1e-2+deb7u3

pound recommends no packages.

pound suggests no packages.

-- Configuration Files:
/etc/init.d/pound changed [not included]
/etc/pound/pound.cfg changed [not included]

-- no debconf information


-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to