Posting over innd/lc.c

Russ Allbery rra at stanford.edu
Sun Feb 17 21:52:02 UTC 2002


Jeffrey M Vinocur <jeff at litech.org> writes:

> Well, the connection gets accepted (I happen to have localhost in
> incoming.conf for other reasons, but with a restrictive pattern), but
> the article gets returned with 437 Can't post... but that error only
> belongs to art.c in the case that (according to the comment) the
> newsgroups aren't in the active file.  However, the group is clearly in
> the active file, since if I change incoming.conf it works just fine.

Ah, I see, I was looking in the wrong place.

RCcanpost() is called for any connection, and it doesn't look like it has
any special logic to distinguish.  This used to work fine for you?  I've
already had localhost with full permissions... hm.

Oh!  *heh*  In LCreader():

    if ((new = NCcreate(fd, FALSE, TRUE)) != NULL) {
        new->Address.s_addr = MyAddress.s_addr;
        syslog(L_NOTICE, "%s connected %d", "localhost", new->fd);
        NCwritereply(new, (char *)NCgreeting);
    }

This is where MyAddress got used.  Hm.  It should be all zeroes, so
something somewhere is creating a permission entry for an address of all
zeroes or is somehow special-casing this.

This is all screaming latent bug; it's good to dig this out and actually
do something structured and reasonable with local nnrpd connections.  I
think maybe we should do something glaringly obvious, like setting a
trusted flag on those connections that RCcanpost() then looks at, so that
we don't have to do detective work to figure out how these connections are
recognized.

-- 
Russ Allbery (rra at stanford.edu)             <http://www.eyrie.org/~eagle/>


More information about the inn-workers mailing list