wescott@sauron.UUCP (09/10/86)
The newform(1) program gracelessly dumps core if you feed it a long enough line. Patch is below. The fix truncates input at NCOLS (512) characters. Your line numbers will differ: *** newform.c.orig Tue Sep 9 14:10:18 1986 --- newform.c Tue Sep 9 16:58:42 1986 *************** *** 558,563 char *xarea, /* Temporary pointer to character array */ UNDEF = '\377', /* Undefined char for return */ *temp; /* Array pointer */ xarea = area; if (kludge && (fp == stdin)) { --- 559,566 ----- char *xarea, /* Temporary pointer to character array */ UNDEF = '\377', /* Undefined char for return */ *temp; /* Array pointer */ + int cnt = NCOLS; /* Count chars read in */ + int errflg = 0; /* Line too long aleady been said */ xarea = area; if (kludge && (fp == stdin)) { *************** *** 567,573 return(xarea); } else { ! while ((*area++ = c = getc(fp)) != '\n' && c != EOF) ; if (c == EOF) { if (--area == xarea)return(NULL); else { --- 570,584 ----- return(xarea); } else { ! while ((*area++ = c = getc(fp)) != '\n' && c != EOF) ! if (cnt-- <= 0) { ! area--; ! if (!errflg) { ! fprintf(stderr, ! "newform: input line too long, truncated\n"); ! errflg++; ! } ! } if (c == EOF) { if (--area == xarea)return(NULL); else { *************** *** 576,582 } } } ! return(&UNDEF); /* Stops 'lint's complaint about return(e) VS return. */ } /* _________________________________________________________________ */ --- 587,593 ----- } } } ! return(xarea); } /* _________________________________________________________________ */ -- -Mike Wescott ncrcae!wescott