ado@elsie.UUCP (08/22/84)
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)