[net.announce] bug killers

mark@cbosgd.UUCP (Mark Horton) (02/25/84)

I've been seeing lots of articles lately with "bug killers" or "wombat
snacks" at the top.  There is clearly a lot of misinformation going
around about this, and I'm sure many of you are wondering what this
is all about.  Some people are even taking immune articles and making
them vulnerable by adding these lines!

The problem is not completely fixed, but there are probably only 1 or 2
sites on Usenet that still have the bug.  We hope to have it tracked
down pretty soon and the last ones squashed.  So the fear is real.

The problem is that, for articles whose body begins with white space
(that is, you indent your first line by putting blanks or tabs on it),
certain systems containing the bug may delete the first BUFSIZ characters
of the body (not just the first line).  For anyone who isn't sure if your
system has fixed the bug, I'll enclose the fix.

For those of you worried about the articles you post, there are two things
you can do:

The preferred way is to begin your article flush at the left margin,
like this one.  If you do that, there won't be a problem, and nobody
has to be distracted by the extra line.

If you absolutely must indent that first line, then put an extra line
in front of it that is not indented.  (Only the first line matters, the
remaining lines may be indented.)  Thus:

<- bug killer
	This line is indented.

If you don't indent that first line, there is no problem:

This line is not indented.

The thing you absolutely do NOT want to do is include a bug killer that
is indented:

	bug killer
This is NOT what you want to do, as this safe article becumes vulnerable!

Here is the fix:

Fix to header.c to fix batching problem chopping start of articles.
***************
*** 550,556
  		/* Line too long - part read didn't fit into a newline */
  		while ((c = getc(fp)) != '\n' && c != EOF)
  			;
! 	} else
  		*--tp = '\0';	/* clobber newline */
  
  	while ((c = getc(fp)) == ' ' || c == '\t') {	/* for each cont line */

--- 550,558 -----
  		/* Line too long - part read didn't fit into a newline */
  		while ((c = getc(fp)) != '\n' && c != EOF)
  			;
! 	} else if (tp == (cp+1))
! 		return(cp);	/* Don't look for continuation of blank lines */
! 	else
  		*--tp = '\0';	/* clobber newline */
  
  	while ((c = getc(fp)) == ' ' || c == '\t') {	/* for each cont line */