Bug with checkgroups msg in News B 2.10.3
Superuser
root at aaec.OZ
Wed Nov 13 15:49:29 AEST 1985
Description:
There are two related problems with checkgroup control messages
being processed by "inews".
Initially it reports
sh: $SPOOLDIR/.arXXXXXX/checkgroups: not found
(where XXXXXX is the process id)
When this is fixed and the message is run through inews it reports
all net, mod and fa groups should be removed. It also deletes all
these entries in the newsgroups file.
I think the same problem existed in News B 2.10.2 but because of
other problems with "$LIBDIR/checkgroups" no report was ever
generated.
(News version: B 2.10.3 alpha 4/15/85)
Repeat-by:
Running any of the checkgroup reports sent by Gene Spafford in
net.news.group.
Diagnosis:
The line of code invoking "$LIBDIR/checkgroups" is all wrong.
It has the wrong number of arguments in the wrong order and
with the wrong input file. (See the patch below)
It makes use of the temporary file ("ARTICLE") before it has
copied any of the message to it.
Fix-by:
The following two context diffs show the fixes. The change
to checkgroups is caused by reading the file containing only
the body of the message and not any of the headers.
*** control.c.old Tue Jun 4 05:53:48 1985
--- control.c Wed Nov 13 15:39:31 1985
***************
*** 486,493
int rc;
(void) setuid(geteuid());
! (void) sprintf(bfr, "%s/checkgroups %s",
! ARTICLE, LIB, (TELLME && *TELLME) ? TELLME : NEWSUSR);
rc = system(bfr);
log("system(%s) status %d", bfr, rc);
}
--- 486,493 -----
int rc;
(void) setuid(geteuid());
! (void) sprintf(bfr, "%s/checkgroups %s < %s",
! LIB, (TELLME && *TELLME) ? TELLME : NEWSUSR, INFILE);
rc = system(bfr);
log("system(%s) status %d", bfr, rc);
}
*** checkgroups.sh.old Wed Nov 13 13:34:18 1985
--- checkgroups.sh Wed Nov 13 15:56:02 1985
***************
*** 3,9
# Read first line of stdin. If of the form "-n group", then only check
# for the specified group. Otherwise, assume doing net and fa.
! sed -e '1,/^$/d' -e '/^#/d' | (
read line
case "${line}" in
-n*)
--- 3,9 -----
# Read first line of stdin. If of the form "-n group", then only check
# for the specified group. Otherwise, assume doing net and fa.
! sed -e '/^$/d' -e '/^#/d' | (
read line
case "${line}" in
-n*)
-----
Frank Crawford
ACSnet: root at aaec.OZ
UUCP: {seismo,mcvax,ukc,prlb2,ubc-vision}!munnari!aaec.OZ!root
Australian Atomic Energy Commission Phone: +61 2 543 3094
Private Mailbag,
SUTHERLAND,
N.S.W. 2232
Australia.
More information about the Net.bugs
mailing list