Xref: utzoo comp.sources.bugs:2879 gnu.utils.bug:1900 Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!think.com!snorkelwacker.mit.edu!ai-lab!ai.mit.edu!gnulists From: vern@horse.ee.lbl.gov (Vern Paxson) Newsgroups: comp.sources.bugs,gnu.utils.bug Subject: flex 2.3 patch #7 Summary: installation fix, particularly for some Sun 3's and 4's Message-ID: <11578@dog.ee.lbl.gov> Date: 28 Mar 91 20:13:55 GMT Followup-To: comp.sources.bugs Organization: Lawrence Berkeley Laboratory, Berkeley Lines: 70 Approved: info-gnu@prep.ai.mit.edu X-Local-Date: Thu, 28 Mar 91 12:13:56 PST Apparently-To: gnu-utils-bug@ucbvax.berkeley.edu This patch fixes a bug which can on some machines lead to bad tables being generated. In general, if your site has the proper conditions for tickling the bug then you almost certainly were unable to install flex (once flex was built it would fail to run, so "make test" would fail completely). I imagine, though, that it's possible to have successfully installed flex and yet still get a bogus scanner generated due to this bug, so it would be wise to incorporate the patch in any case. Sun 3's and 4's appear to be particularly susceptible. Vern Vern Paxson vern@ee.lbl.gov Computer Systems Engineering ucbvax!ee.lbl.gov!vern Lawrence Berkeley Laboratory (415) 486-7504 diff -c Patch-6/Changes Patch-7/Changes *** Patch-6/Changes Wed Aug 29 12:11:34 1990 --- Patch-7/Changes Thu Mar 28 12:02:17 1991 *************** *** 1,3 **** --- 1,11 ---- + Changes between 2.3 Patch #7 (28Mar91) and 2.3 Patch #6: + + - Fixed out-of-bounds array access that caused bad tables + to be produced on machines where the bad reference happened + to yield a 1. This caused problems installing or running + flex on some Suns, in particular. + + Changes between 2.3 Patch #6 (29Aug90) and 2.3 Patch #5: - Fixed a serious bug in yymore() which basically made it diff -c Patch-6/gen.c Patch-7/gen.c *** Patch-6/gen.c Wed Aug 29 12:11:25 1990 --- Patch-7/gen.c Thu Mar 28 12:02:18 1991 *************** *** 28,34 **** #ifndef lint static char rcsid[] = ! "@(#) $Header: /usr/helios/u0/vern/flex/RCS/gen.c,v 2.10 90/08/29 12:11:13 vern Exp $ (LBL)"; #endif #include "flexdef.h" --- 28,34 ---- #ifndef lint static char rcsid[] = ! "@(#) $Header: /home/horse/u0/vern/flex/RCS/gen.c,v 2.12 91/03/28 12:01:38 vern Exp $ (LBL)"; #endif #include "flexdef.h" *************** *** 799,805 **** if ( variable_trailing_context_rules && ! (accnum & YY_TRAILING_HEAD_MASK) && ! accnum > 0 && rule_type[accnum] == RULE_VARIABLE ) { /* special hack to flag accepting number as part --- 799,805 ---- if ( variable_trailing_context_rules && ! (accnum & YY_TRAILING_HEAD_MASK) && ! accnum > 0 && accnum <= num_rules && rule_type[accnum] == RULE_VARIABLE ) { /* special hack to flag accepting number as part