Hello,

I just uploaded a NMU of ircd-hybrid fixing FTBFS and this bug.
Patch attached.

Cheers,
-- 
Julien Danjou
 <? TuxFamily Administrator Team    | [EMAIL PROTECTED]  ?>
 <? TuxFamily Free Network Services | http://www.tuxfamily.org ?>
                    Free Hosting For Free People
diff -u ircd-hybrid-7.0.3/debian/patches/00list 
ircd-hybrid-7.0.3/debian/patches/00list
--- ircd-hybrid-7.0.3/debian/patches/00list
+++ ircd-hybrid-7.0.3/debian/patches/00list
@@ -12,0 +13 @@
+14_fix_va_list
diff -u ircd-hybrid-7.0.3/debian/copyright ircd-hybrid-7.0.3/debian/copyright
--- ircd-hybrid-7.0.3/debian/copyright
+++ ircd-hybrid-7.0.3/debian/copyright
@@ -15,8 +15,7 @@
 
    You should have received a copy of the GNU General Public License
    along with this package; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-   02111-1307, USA.
+   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
 
 On Debian systems, the complete text of the GNU General Public License
 can be found in `/usr/share/common-licenses/GPL'.
diff -u ircd-hybrid-7.0.3/debian/changelog ircd-hybrid-7.0.3/debian/changelog
--- ircd-hybrid-7.0.3/debian/changelog
+++ ircd-hybrid-7.0.3/debian/changelog
@@ -1,3 +1,14 @@
+ircd-hybrid (1:7.0.3-3.1) unstable; urgency=low
+
+  * NMU
+  * Fix a segfault on ppc and amd64 in va_list (Closes: #300638)
+    Add 14_fix_va_list.dpatch
+  * Change $(PWD) to $(CURDIR) in debian/rules
+  * Remove tools/vimotd and tools/viklines on clean target in debian/rules
+  * Update FSF address in debian/copyright
+
+ -- Julien Danjou <[EMAIL PROTECTED]>  Tue, 16 May 2006 17:22:44 +0200
+
 ircd-hybrid (1:7.0.3-3) unstable; urgency=high
 
   * Patch work:
diff -u ircd-hybrid-7.0.3/debian/control ircd-hybrid-7.0.3/debian/control
--- ircd-hybrid-7.0.3/debian/control
+++ ircd-hybrid-7.0.3/debian/control
@@ -1,14 +1,14 @@
 Source: ircd-hybrid
 Section: net
 Priority: optional
-Build-Depends: debhelper (>= 4.1.16), bison, zlib1g-dev, dpatch, flex, 
docbook-to-man
+Build-Depends: debhelper (>= 4.1.16), bison, zlib1g-dev, dpatch, flex, 
docbook-to-man 
 Maintainer: Joshua Kwan <[EMAIL PROTECTED]>
 Standards-Version: 3.6.1.0
 
 Package: ircd-hybrid
 Architecture: any
 Conflicts: ircd-ircu, ircd-irc2, dancer-ircd, oftc-hybrid, ircd
-Depends: ${shlibs:Depends}, ${misc:Depends}
+Depends: ${shlibs:Depends}, ${misc:Depends} 
 Provides: ircd
 Recommends: whois
 Description: high-performance secure IRC server
@@ -33,7 +33,6 @@
 Section: devel
 Architecture: all
 Suggests: ircd-hybrid
-Depends: libadns1-dev
 Description: development files for ircd-hybrid
  These are the headers used when writing modules for ircd-hybrid.
  For more information on how to write these modules, see the ircd-hybrid
@@ -45,2 +44 @@
- assumes a lot; if you know what you're doing, you can probably do it
- better yourself anyway.
+ assumes a lot; if you possess clue, you will know what to do anyway.
diff -u ircd-hybrid-7.0.3/debian/rules ircd-hybrid-7.0.3/debian/rules
--- ircd-hybrid-7.0.3/debian/rules
+++ ircd-hybrid-7.0.3/debian/rules
@@ -57,7 +57,7 @@
        CFLAGS= \
        ./configure     $(crossflags) $(sslflags) \
                        --with-nicklen=$(NICKLEN) --with-topiclen=$(TOPICLEN) \
-                       --prefix=$(PWD)/debian/tmp --bindir=\${prefix}/usr/sbin 
\
+                       --prefix=$(CURDIR)/debian/tmp 
--bindir=\${prefix}/usr/sbin \
                        --sysconfdir=/etc/ircd-hybrid --localstatedir=/var/log \
                        --sharedstatedir=/usr/share/ircd-hybrid \
                        --mandir=/usr/share/man --includedir=/usr/include \
@@ -107,6 +107,7 @@
        rm -f build-stamp configure-stamp manpages-stamp config.log 
changelog-stamp control-stamp
        -$(MAKE) distclean
        -$(MAKE) -C messages distclean
+       rm -f tools/vimotd tools/viklines 
        dh_clean
 
 debian/changelog: changelog-stamp
@@ -177,7 +178,7 @@
        $(MAKE) -C contrib install
        $(MAKE) -C messages install
 ifndef USE_OPENSSL
-       rm -f $(PWD)/debian/tmp/usr/sbin/encspeed
+       rm -f $(CURDIR)/debian/tmp/usr/sbin/encspeed
 endif
 
 # Make life easier for woody backporters.
only in patch2:
unchanged:
--- ircd-hybrid-7.0.3.orig/debian/patches/14_fix_va_list.dpatch
+++ ircd-hybrid-7.0.3/debian/patches/14_fix_va_list.dpatch
@@ -0,0 +1,102 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 14_fix_va_list.dpatch by Julien Danjou <[EMAIL PROTECTED]>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Fix a segfault in va_list happening on amd64 and ppc
+
+diff -Nur ircd-hybrid-7.0.3/src/send.c ircd-hybrid-7.0.3.patched/src/send.c
+--- ircd-hybrid-7.0.3/src/send.c       2004-02-10 05:28:40.000000000 +0100
++++ ircd-hybrid-7.0.3.patched/src/send.c       2006-04-20 02:50:14.000000000 
+0200
+@@ -501,7 +501,7 @@
+                       struct Channel *chptr, char *command,
+                       const char *pattern, ...)
+ {
+-  va_list    args;
++  va_list    alocal, aremote, auid;
+   buf_head_t local_linebuf;
+   buf_head_t remote_linebuf;
+   buf_head_t uid_linebuf;
+@@ -509,23 +509,27 @@
+   linebuf_newbuf(&local_linebuf);
+   linebuf_newbuf(&remote_linebuf);
+   linebuf_newbuf(&uid_linebuf);
+-  va_start(args, pattern);
++  va_start(alocal, pattern);
++  va_start(aremote, pattern);
++  va_start(auid, pattern);
+ 
+   if(IsServer(from))
+-    linebuf_putmsg(&local_linebuf, pattern, &args, ":%s %s %s ",
++    linebuf_putmsg(&local_linebuf, pattern, &alocal, ":%s %s %s ",
+                    from->name, command, RootChan(chptr)->chname);
+   else
+-    linebuf_putmsg(&local_linebuf, pattern, &args, ":[EMAIL PROTECTED] %s %s 
",
++    linebuf_putmsg(&local_linebuf, pattern, &alocal, ":[EMAIL PROTECTED] %s 
%s ",
+                    from->name, from->username, from->host,
+                    command, RootChan(chptr)->chname);
+ 
+-  linebuf_putmsg(&remote_linebuf, pattern, &args, ":%s %s %s ",
++  linebuf_putmsg(&remote_linebuf, pattern, &aremote, ":%s %s %s ",
+                  from->name, command, chptr->chname);
+ 
+-  linebuf_putmsg(&uid_linebuf, pattern, &args, ":%s %s %s ",
++  linebuf_putmsg(&uid_linebuf, pattern, &auid, ":%s %s %s ",
+                  ID(from), command, chptr->chname);
+ 
+-  va_end(args);
++  va_end(auid);
++  va_end(aremote);
++  va_end(alocal);
+ 
+   ++current_serial;
+ 
+@@ -1045,7 +1049,7 @@
+                     char *mask, int what,
+                     const char *pattern, ...)
+ {
+-  va_list args;
++  va_list alocal, aremote;
+   struct Client *client_p;
+   dlink_node *ptr;
+   dlink_node *ptr_next;
+@@ -1054,13 +1058,15 @@
+ 
+   linebuf_newbuf(&local_linebuf);
+   linebuf_newbuf(&remote_linebuf);
+-  va_start(args, pattern);
++  va_start(alocal, pattern);
++  va_start(aremote, pattern);
+ 
+-  linebuf_putmsg(&remote_linebuf, pattern, &args, ":%s ", from->name);
+-  linebuf_putmsg(&local_linebuf, pattern, &args, ":[EMAIL PROTECTED] ", 
from->name,
++  linebuf_putmsg(&remote_linebuf, pattern, &aremote, ":%s ", from->name);
++  linebuf_putmsg(&local_linebuf, pattern, &alocal, ":[EMAIL PROTECTED] ", 
from->name,
+                from->username, from->host);
+ 
+-  va_end(args);
++  va_end(aremote);
++  va_end(alocal);
+ 
+   /* scan the local clients */
+   DLINK_FOREACH_SAFE(ptr, ptr_next, lclient_list.head)
+@@ -1416,16 +1422,18 @@
+   buf_head_t linebuf_uid;
+   buf_head_t linebuf_nick;
+ 
+-  va_start(args, pattern);
+-
+   if(HasID(source_p))
+   {
+     have_uid = 1;
++    va_start(args, pattern);
+     linebuf_newbuf(&linebuf_uid);
+     linebuf_putmsg(&linebuf_uid, pattern, &args, ":%s KILL %s :",
+                    me.name, ID(source_p));
++    va_end(args);
+   }
+ 
++  va_start(args, pattern);
++
+   linebuf_newbuf(&linebuf_nick);
+   linebuf_putmsg(&linebuf_nick, pattern, &args, ":%s KILL %s :",
+                  me.name, source_p->name);

Attachment: signature.asc
Description: Digital signature

Reply via email to