Bug#734648: cyrus-nntpd-2.4: nntp not working after upgrade to wheezy

Ulrich Eckhardt deb at uli-eckhardt.de
Wed Jan 8 20:04:48 UTC 2014


Package: cyrus-nntpd-2.4
Version: 2.4.16-4+deb7u1
Severity: grave
Tags: upstream
Justification: renders package unusable

Dear Maintainer,

I have upgraded my server to from Debian 6 (with cyrus 2.2) to Debian 7 (with
cyrus 2.4.16). After this upgrade it is not possible anymore to feed news into
my imap-spool.

This problem was registered as bugreport on cyrus:
https://bugzilla.cyrusimap.org/show_bug.cgi?id=3833 . A detailed description of
the problem can be found there.

This bug was resolved quickly by the cyrus team but planned for 2.4.18. I was
able to incorporate the two commits of the solution into the source package
cyrus-imapd-2.4_2.4.16-4+deb7u1 and build a new working nntpd for cyrus 2.4.16.
The following patch can be applied to fix this problem:

---------------------------------------------------------------------------

--- nntpd.c.deb 2014-01-07 20:33:00.827064145 +0100
+++ nntpd.c     2014-01-08 19:10:03.242389940 +0100
@@ -1065,7 +1065,7 @@
                be = backend_current;
                if (arg1.len &&
                    (!is_newsgroup(arg1.s) ||
-                    (r = open_group(arg1.s, 1, &be, NULL)))) goto nogroup;
+                    (r = open_group(arg1.s, 0, &be, NULL)))) goto nogroup;
                else if (be) {
                    prot_printf(be->out, "%s", cmd.s);
                    if (arg1.len) {
@@ -1780,6 +1780,8 @@
     if (!has_prefix) {
        snprintf(mailboxname, sizeof(mailboxname), "%s%s", newsprefix, name);
        name = mailboxname;
+
+       if (!is_newsgroup(name)) return IMAP_MAILBOX_NONEXISTENT;
     }

     if (!r) r = mlookup(name, &newserver, &acl, NULL);
@@ -2544,7 +2546,7 @@
        }
     }
     else {
-       prot_printf(nntp_out, "%s %u %u %c\r\n", name,
+       prot_printf(nntp_out, "%s %u %u %c\r\n", name+strlen(newsprefix),
                    group_state->exists ? index_getuid(group_state,
group_state->exists) :
                    group_state->mailbox->i.last_uid,
                    group_state->exists ? index_getuid(group_state, 1) :
@@ -3000,7 +3002,7 @@
        if (!rcpt) return -1;

        /* construct the mailbox name */
-       sprintf(rcpt, "%.*s", (int) n, p);
+       sprintf(rcpt, "%s%.*s", newsprefix, (int) n, p);

        /* skip mailboxes that we don't serve as newsgroups */
        if (!is_newsgroup(rcpt)) continue;

----------------------------------------------------------------------------




-- System Information:
Debian Release: 7.3
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: i386 (i686)

Kernel: Linux 2.6.32-042stab078.27 (SMP w/1 CPU core)
Locale: LANG=de_DE.utf8, LC_CTYPE=de_DE.utf8 (charmap=UTF-8) (ignored: LC_ALL set to de_DE.utf8)
Shell: /bin/sh linked to /bin/bash

Versions of packages cyrus-nntpd-2.4 depends on:
ii  cyrus-common-2.4  2.4.16-4+deb7u1
ii  libc6             2.13-38
ii  libcomerr2        1.42.5-1.1
ii  libdb5.1          5.1.29-5
ii  libsasl2-2        2.1.25.dfsg1-6+deb7u1
ii  libssl1.0.0       1.0.1e-2+deb7u3
ii  libwrap0          7.6.q-24
ii  zlib1g            1:1.2.7.dfsg-13

cyrus-nntpd-2.4 recommends no packages.

cyrus-nntpd-2.4 suggests no packages.

-- no debconf information



More information about the Pkg-Cyrus-imapd-Debian-devel mailing list