Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 6/24/83; site elsie.UUCP Path: utzoo!linus!decvax!decwrl!amd!noao!hao!seismo!umcp-cs!cvl!elsie!ado From: ado@elsie.UUCP Newsgroups: net.news.b Subject: 2.10.1 "Distribution" line handling bug (with fix) Message-ID: <1160@elsie.UUCP> Date: Wed, 22-Aug-84 07:59:05 EDT Article-I.D.: elsie.1160 Posted: Wed Aug 22 07:59:05 1984 Date-Received: Thu, 23-Aug-84 07:35:43 EDT Organization: NIH-LEC, Bethesda, MD Lines: 68 The logic for handling "Distribution" lines in 2.10.1 news can cause problems if an article is posted to a news group that's not being subscribed to by a neighboring site and includes a "Distribution" line mentioning a news group that IS subscribed to by the neighboring site. To see the bug, you may need the cooperation of a neighboring site. On both YOUR site and the neighboring site, ensure that the "/usr/lib/news/sys" line for the neighboring system contains a "!" component in the news group list; for example: neighbor:net,fa,mod,na,usa,to.neighbor,!net.vvs:U (where "neighbor" stands for the actual name of the neighbor site throughout). Then post an article to the "!" group, including in the header of the article a Distribution: to.neighbor line (where you replace "neighbor" with the actual name of the neighbor site). The article will be shipped to the neighbor site; the neighbor site will promptly reject it and send an annoying letter about the rejection back to your site. IF YOU CHANGED THE "/usr/lib/news/sys" FILES, REMEMBER TO CHANGE THEM BACK AFTER THIS TEST. Fixing the bug involves changes to two places in "ifuncs.c". Here's the relevant "diff -c" output: *** ifuncs.c Wed Aug 22 07:24:28 1984 --- 2.10.1/ifuncs.c Mon Nov 14 14:16:27 1983 *************** *** 32,40 if (h.distribution[0]) - #ifdef OLDVERSION strcpy(h.nbuf, h.distribution); - #else - ngcat(h.distribution); - #endif ngcat(h.nbuf); /* break path into list of systems. */ --- 31,36 ----- fclose(fp); if (h.distribution[0]) strcpy(h.nbuf, h.distribution); ngcat(h.nbuf); /* break path into list of systems. */ *************** *** 61,70 while (*hptr++ != '\0') ; } - #ifndef OLDVERSION - if (h.distribution[0] && !ngmatch(h.distribution, srec.s_nbuf)) - continue; - #endif if (ngmatch(h.nbuf, srec.s_nbuf)) { transmit(&srec, xfopen(ARTICLE, "r"), 1); } --- 57,62 ----- while (*hptr++ != '\0') ; } if (ngmatch(h.nbuf, srec.s_nbuf)) { transmit(&srec, xfopen(ARTICLE, "r"), 1); } -- ...decvax!seismo!umcp-cs!elsie!ado (301) 496-5688 (DEC, VAX and Elsie are Digital Equipment Corp. and Borden's trademarks)