Dear release team, dear sponsors

I have made a patch which would solve bug for Debian Squeeze as the Sid version
did not made it into testing in time. As I'm not familiar with doing such a
thing I am asking for some help in order to make a NMU to Debian t-p-u. Please
find attached a debdiff sendmail_8.14.3-9.4.dsc sendmail_8.14.3-9.5.dsc which
shows the changes done by me based on the patches in the according bug report
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=527862 and the new upstream
version 8.14.4. If this change is acceptable to the release team I would ask
for some help with getting it into t-p-u.

Thanks for everybodies help!
Kind regards
Harald Jenny
diff -u sendmail-8.14.3/debian/changelog sendmail-8.14.3/debian/changelog
--- sendmail-8.14.3/debian/changelog
+++ sendmail-8.14.3/debian/changelog
@@ -1,3 +1,11 @@
+sendmail (8.14.3-9.5) testing-proposed-updates; urgency=medium
+
+  * Non-maintainer upload.
+  * Apply patch from sendmail 8.14.4 to fix libmilter bug in upcoming Squeeze
+    release (Closes: #527862).
+
+ -- Harald Jenny <har...@a-little-linux-box.at>  Sun,  2 Jan 2011 22:36:17 
+0100
+
 sendmail (8.14.3-9.4) unstable; urgency=low
 
   * Non-maintainer upload.
diff -u sendmail-8.14.3/debian/patches/8.14/8.14.3/series 
sendmail-8.14.3/debian/patches/8.14/8.14.3/series
--- sendmail-8.14.3/debian/patches/8.14/8.14.3/series
+++ sendmail-8.14.3/debian/patches/8.14/8.14.3/series
@@ -12,0 +13 @@
+worker_c
only in patch2:
unchanged:
--- sendmail-8.14.3.orig/debian/patches/8.14/8.14.3/worker_c
+++ sendmail-8.14.3/debian/patches/8.14/8.14.3/worker_c
@@ -0,0 +1,73 @@
+--- sendmail-8.14.3/libmilter/worker.c 2007-12-03 23:06:05.000000000 +0100
++++ sendmail-8.14.4/libmilter/worker.c 2009-06-15 17:34:54.000000000 +0200
+@@ -328,6 +312,7 @@
+       int dim_pfd = 0;
+       bool rebuild_set = true;
+       int pcnt = 0; /* error count for poll() failures */
++      time_t lastcheck;
+ 
+       Tskmgr.tm_tid = sthread_get_id();
+       if (pthread_detach(Tskmgr.tm_tid) != 0)
+@@ -345,12 +330,12 @@
+       }
+       dim_pfd = PFD_STEP;
+ 
++      lastcheck = time(NULL);
+       for (;;)
+       {
+               SMFICTX_PTR ctx;
+               int nfd, rfd, i;
+               time_t now;
+-              time_t lastcheck;
+ 
+               POOL_LEV_DPRINTF(4, ("Let's %s again...", WAITFN));
+ 
+@@ -364,20 +349,20 @@
+               /* check for timed out sessions? */
+               if (lastcheck + DT_CHECK_OLD_SESSIONS < now)
+               {
+-                      SM_TAILQ_FOREACH(ctx, &WRK_CTX_HEAD, ctx_link)
++                      ctx = SM_TAILQ_FIRST(&WRK_CTX_HEAD);
++                      while (ctx != SM_TAILQ_END(&WRK_CTX_HEAD))
+                       {
++                              SMFICTX_PTR ctx_nxt;
++
++                              ctx_nxt = SM_TAILQ_NEXT(ctx, ctx_link);
+                               if (ctx->ctx_wstate == WKST_WAITING)
+                               {
+                                       if (ctx->ctx_wait == 0)
+-                                      {
+                                               ctx->ctx_wait = now;
+-                                              continue;
+-                                      }
+-
+-                                      /* if session timed out, close it */
+-                                      if (ctx->ctx_wait + OLD_SESSION_TIMEOUT
+-                                          < now)
++                                      else if (ctx->ctx_wait + 
OLD_SESSION_TIMEOUT
++                                               < now)
+                                       {
++                                              /* if session timed out, close 
it */
+                                               sfsistat (*fi_close) 
__P((SMFICTX *));
+ 
+                                               POOL_LEV_DPRINTF(4,
+@@ -389,10 +374,9 @@
+                                                       (void) (*fi_close)(ctx);
+ 
+                                               mi_close_session(ctx);
+-                                              ctx = 
SM_TAILQ_FIRST(&WRK_CTX_HEAD);
+-                                              continue;
+                                       }
+                               }
++                              ctx = ctx_nxt;
+                       }
+                       lastcheck = now;
+               }
+@@ -465,6 +449,7 @@
+                                       }
+                               }
+                       }
++                      rebuild_set = false;
+               }
+ 
+               TASKMGR_UNLOCK();

Reply via email to