]> git.pld-linux.org Git - packages/flex.git/commitdiff
*** empty log message ***
authorKrzysztof Taraszka <dzimi@pld-linux.org>
Sat, 7 Sep 2002 09:21:18 +0000 (09:21 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    flex-2.5.4a_bufer_overflow.patch -> 1.1

flex-2.5.4a_bufer_overflow.patch [new file with mode: 0644]

diff --git a/flex-2.5.4a_bufer_overflow.patch b/flex-2.5.4a_bufer_overflow.patch
new file mode 100644 (file)
index 0000000..f93008d
--- /dev/null
@@ -0,0 +1,1394 @@
+diff -urN flex-2.5.4.orig/initscan.c flex-2.5.4/initscan.c
+--- flex-2.5.4.orig/initscan.c Sat Sep  7 11:02:56 2002
++++ flex-2.5.4/initscan.c      Sat Sep  7 11:05:50 2002
+@@ -11,6 +11,7 @@
+ #include <stdio.h>
+ #include <unistd.h>
++#include <errno.h>
+ /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
+ #ifdef c_plusplus
+@@ -1291,7 +1292,15 @@
+       return CHAR;
+ #define RETURNNAME \
++      if(strlen(yytext) < MAXLINE) \
++         { \
+       strcpy( nmstr, yytext ); \
++       } \
++      else \
++       { \
++         fputs("Input line too long!\n", stderr); \
++         exit(1);  \
++       } /* end of else */  \
+       return NAME;
+ #define PUT_BACK_STRING(str, start) \
+@@ -1328,7 +1337,7 @@
+ #define OPTION 17
+ #define LINEDIR 18
+-#line 1333 "scan.c"
++#line 1343 "scan.c"
+ /* Macros after this point can all be overridden by user definitions in
+  * section 1.
+@@ -1428,9 +1437,20 @@
+                       YY_FATAL_ERROR( "input in flex scanner failed" ); \
+               result = n; \
+               } \
+-      else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
+-                && ferror( yyin ) ) \
+-              YY_FATAL_ERROR( "input in flex scanner failed" );
++      else \
++              { \
++              errno=0; \
++              while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
++                      { \
++                      if( errno != EINTR) \
++                              { \
++                              YY_FATAL_ERROR( "input in flex scanner failed" ); \
++                              break; \
++                              } \
++                      errno=0; \
++                      clearerr(yyin); \
++                      } \
++              }
+ #endif
+ /* No semi-colon after return; correct usage is to write "yyterminate();" -
+@@ -1482,7 +1502,7 @@
+       register char *yy_cp, *yy_bp;
+       register int yy_act;
+-#line 94 "scan.l"
++#line 102 "scan.l"
+       static int bracelevel, didadef, indented_code;
+       static int doing_rule_action = false;
+@@ -1493,7 +1513,7 @@
+       Char nmdef[MAXLINE], myesc();
+-#line 1498 "scan.c"
++#line 1519 "scan.c"
+       if ( yy_init )
+               {
+@@ -1580,32 +1600,32 @@
+ case 1:
+ YY_RULE_SETUP
+-#line 105 "scan.l"
++#line 113 "scan.l"
+ indented_code = true; BEGIN(CODEBLOCK);
+       YY_BREAK
+ case 2:
+ YY_RULE_SETUP
+-#line 106 "scan.l"
++#line 114 "scan.l"
+ ACTION_ECHO; yy_push_state( COMMENT );
+       YY_BREAK
+ case 3:
+ YY_RULE_SETUP
+-#line 107 "scan.l"
++#line 115 "scan.l"
+ yy_push_state( LINEDIR );
+       YY_BREAK
+ case 4:
+ YY_RULE_SETUP
+-#line 108 "scan.l"
++#line 116 "scan.l"
+ return SCDECL;
+       YY_BREAK
+ case 5:
+ YY_RULE_SETUP
+-#line 109 "scan.l"
++#line 117 "scan.l"
+ return XSCDECL;
+       YY_BREAK
+ case 6:
+ YY_RULE_SETUP
+-#line 110 "scan.l"
++#line 118 "scan.l"
+ {
+                       ++linenum;
+                       line_directive_out( (FILE *) 0, 1 );
+@@ -1615,12 +1635,12 @@
+       YY_BREAK
+ case 7:
+ YY_RULE_SETUP
+-#line 117 "scan.l"
++#line 125 "scan.l"
+ /* discard */
+       YY_BREAK
+ case 8:
+ YY_RULE_SETUP
+-#line 119 "scan.l"
++#line 127 "scan.l"
+ {
+                       sectnum = 2;
+                       bracelevel = 0;
+@@ -1632,95 +1652,103 @@
+       YY_BREAK
+ case 9:
+ YY_RULE_SETUP
+-#line 128 "scan.l"
++#line 136 "scan.l"
+ yytext_is_array = false; ++linenum;
+       YY_BREAK
+ case 10:
+ YY_RULE_SETUP
+-#line 129 "scan.l"
++#line 137 "scan.l"
+ yytext_is_array = true; ++linenum;
+       YY_BREAK
+ case 11:
+ YY_RULE_SETUP
+-#line 131 "scan.l"
++#line 139 "scan.l"
+ BEGIN(OPTION); return OPTION_OP;
+       YY_BREAK
+ case 12:
+ YY_RULE_SETUP
+-#line 133 "scan.l"
++#line 141 "scan.l"
+ ++linenum; /* ignore */
+       YY_BREAK
+ case 13:
+ YY_RULE_SETUP
+-#line 134 "scan.l"
++#line 142 "scan.l"
+ ++linenum;    /* ignore */
+       YY_BREAK
+ case 14:
+ YY_RULE_SETUP
+-#line 136 "scan.l"
++#line 144 "scan.l"
+ synerr( _( "unrecognized '%' directive" ) );
+       YY_BREAK
+ case 15:
+ YY_RULE_SETUP
+-#line 138 "scan.l"
++#line 146 "scan.l"
++{
++                      if(strlen(yytext) < MAXLINE) 
+ {
+                       strcpy( nmstr, yytext );
++                       } 
++                      else 
++                       { 
++                         fputs("Input line too long!\n", stderr); 
++                         exit(1);  
++                       } /* end of else */  
+                       didadef = false;
+                       BEGIN(PICKUPDEF);
+                       }
+       YY_BREAK
+ case 16:
+ YY_RULE_SETUP
+-#line 144 "scan.l"
++#line 160 "scan.l"
+ RETURNNAME;
+       YY_BREAK
+ case 17:
+ YY_RULE_SETUP
+-#line 145 "scan.l"
++#line 161 "scan.l"
+ ++linenum; /* allows blank lines in section 1 */
+       YY_BREAK
+ case 18:
+ YY_RULE_SETUP
+-#line 146 "scan.l"
++#line 162 "scan.l"
+ ACTION_ECHO; ++linenum; /* maybe end of comment line */
+       YY_BREAK
+ case 19:
+ YY_RULE_SETUP
+-#line 151 "scan.l"
++#line 167 "scan.l"
+ ACTION_ECHO; yy_pop_state();
+       YY_BREAK
+ case 20:
+ YY_RULE_SETUP
+-#line 152 "scan.l"
++#line 168 "scan.l"
+ ACTION_ECHO;
+       YY_BREAK
+ case 21:
+ YY_RULE_SETUP
+-#line 153 "scan.l"
++#line 169 "scan.l"
+ ACTION_ECHO;
+       YY_BREAK
+ case 22:
+ YY_RULE_SETUP
+-#line 154 "scan.l"
++#line 170 "scan.l"
+ ++linenum; ACTION_ECHO;
+       YY_BREAK
+ case 23:
+ YY_RULE_SETUP
+-#line 158 "scan.l"
++#line 174 "scan.l"
+ yy_pop_state();
+       YY_BREAK
+ case 24:
+ YY_RULE_SETUP
+-#line 159 "scan.l"
++#line 175 "scan.l"
+ linenum = myctoi( yytext );
+       YY_BREAK
+ case 25:
+ YY_RULE_SETUP
+-#line 161 "scan.l"
++#line 177 "scan.l"
+ {
+                       flex_free( (void *) infilename );
+                       infilename = copy_string( yytext + 1 );
+@@ -1729,24 +1757,24 @@
+       YY_BREAK
+ case 26:
+ YY_RULE_SETUP
+-#line 166 "scan.l"
++#line 182 "scan.l"
+ /* ignore spurious characters */
+       YY_BREAK
+ case 27:
+ YY_RULE_SETUP
+-#line 170 "scan.l"
++#line 186 "scan.l"
+ ++linenum; BEGIN(INITIAL);
+       YY_BREAK
+ case 28:
+ YY_RULE_SETUP
+-#line 172 "scan.l"
++#line 188 "scan.l"
+ ACTION_ECHO;
+       YY_BREAK
+ case 29:
+ YY_RULE_SETUP
+-#line 174 "scan.l"
++#line 190 "scan.l"
+ {
+                       ++linenum;
+                       ACTION_ECHO;
+@@ -1758,14 +1786,24 @@
+ case 30:
+ YY_RULE_SETUP
+-#line 184 "scan.l"
++#line 200 "scan.l"
+ /* separates name and definition */
+       YY_BREAK
+ case 31:
+ YY_RULE_SETUP
+-#line 186 "scan.l"
++#line 202 "scan.l"
++{
++                      if(strlen(yytext) < MAXLINE)
+ {
+                       strcpy( (char *) nmdef, yytext );
++                       } 
++                      else
++                       {
++                         fputs("Input line too long!\n", stderr);
++                         exit(1); 
++                       } /* end of else */
++  
++ 
+                       /* Skip trailing whitespace. */
+                       for ( i = strlen( (char *) nmdef ) - 1;
+@@ -1781,7 +1819,7 @@
+       YY_BREAK
+ case 32:
+ YY_RULE_SETUP
+-#line 201 "scan.l"
++#line 227 "scan.l"
+ {
+                       if ( ! didadef )
+                               synerr( _( "incomplete name definition" ) );
+@@ -1793,94 +1831,94 @@
+ case 33:
+ YY_RULE_SETUP
+-#line 211 "scan.l"
++#line 237 "scan.l"
+ ++linenum; BEGIN(INITIAL);
+       YY_BREAK
+ case 34:
+ YY_RULE_SETUP
+-#line 212 "scan.l"
++#line 238 "scan.l"
+ option_sense = true;
+       YY_BREAK
+ case 35:
+ YY_RULE_SETUP
+-#line 214 "scan.l"
++#line 240 "scan.l"
+ return '=';
+       YY_BREAK
+ case 36:
+ YY_RULE_SETUP
+-#line 216 "scan.l"
++#line 242 "scan.l"
+ option_sense = ! option_sense;
+       YY_BREAK
+ case 37:
+ YY_RULE_SETUP
+-#line 218 "scan.l"
++#line 244 "scan.l"
+ csize = option_sense ? 128 : 256;
+       YY_BREAK
+ case 38:
+ YY_RULE_SETUP
+-#line 219 "scan.l"
++#line 245 "scan.l"
+ csize = option_sense ? 256 : 128;
+       YY_BREAK
+ case 39:
+ YY_RULE_SETUP
+-#line 221 "scan.l"
++#line 247 "scan.l"
+ long_align = option_sense;
+       YY_BREAK
+ case 40:
+ YY_RULE_SETUP
+-#line 222 "scan.l"
++#line 248 "scan.l"
+ {
+                       action_define( "YY_ALWAYS_INTERACTIVE", option_sense );
+                       }
+       YY_BREAK
+ case 41:
+ YY_RULE_SETUP
+-#line 225 "scan.l"
++#line 251 "scan.l"
+ yytext_is_array = option_sense;
+       YY_BREAK
+ case 42:
+ YY_RULE_SETUP
+-#line 226 "scan.l"
++#line 252 "scan.l"
+ backing_up_report = option_sense;
+       YY_BREAK
+ case 43:
+ YY_RULE_SETUP
+-#line 227 "scan.l"
++#line 253 "scan.l"
+ interactive = ! option_sense;
+       YY_BREAK
+ case 44:
+ YY_RULE_SETUP
+-#line 228 "scan.l"
++#line 254 "scan.l"
+ C_plus_plus = option_sense;
+       YY_BREAK
+ case 45:
+ YY_RULE_SETUP
+-#line 229 "scan.l"
++#line 255 "scan.l"
+ caseins = ! option_sense;
+       YY_BREAK
+ case 46:
+ YY_RULE_SETUP
+-#line 230 "scan.l"
++#line 256 "scan.l"
+ caseins = option_sense;
+       YY_BREAK
+ case 47:
+ YY_RULE_SETUP
+-#line 231 "scan.l"
++#line 257 "scan.l"
+ ddebug = option_sense;
+       YY_BREAK
+ case 48:
+ YY_RULE_SETUP
+-#line 232 "scan.l"
++#line 258 "scan.l"
+ spprdflt = ! option_sense;
+       YY_BREAK
+ case 49:
+ YY_RULE_SETUP
+-#line 233 "scan.l"
++#line 259 "scan.l"
+ useecs = option_sense;
+       YY_BREAK
+ case 50:
+ YY_RULE_SETUP
+-#line 234 "scan.l"
++#line 260 "scan.l"
+ {
+                       useecs = usemecs = false;
+                       use_read = fullspd = true;
+@@ -1888,7 +1926,7 @@
+       YY_BREAK
+ case 51:
+ YY_RULE_SETUP
+-#line 238 "scan.l"
++#line 264 "scan.l"
+ {
+                       useecs = usemecs = false;
+                       use_read = fulltbl = true;
+@@ -1896,22 +1934,22 @@
+       YY_BREAK
+ case 52:
+ YY_RULE_SETUP
+-#line 242 "scan.l"
++#line 268 "scan.l"
+ ACTION_IFDEF("YY_NO_INPUT", ! option_sense);
+       YY_BREAK
+ case 53:
+ YY_RULE_SETUP
+-#line 243 "scan.l"
++#line 269 "scan.l"
+ interactive = option_sense;
+       YY_BREAK
+ case 54:
+ YY_RULE_SETUP
+-#line 244 "scan.l"
++#line 270 "scan.l"
+ lex_compat = option_sense;
+       YY_BREAK
+ case 55:
+ YY_RULE_SETUP
+-#line 245 "scan.l"
++#line 271 "scan.l"
+ {
+                       action_define( "YY_MAIN", option_sense );
+                       do_yywrap = ! option_sense;
+@@ -1919,138 +1957,146 @@
+       YY_BREAK
+ case 56:
+ YY_RULE_SETUP
+-#line 249 "scan.l"
++#line 275 "scan.l"
+ usemecs = option_sense;
+       YY_BREAK
+ case 57:
+ YY_RULE_SETUP
+-#line 250 "scan.l"
++#line 276 "scan.l"
+ {
+                       action_define( "YY_NEVER_INTERACTIVE", option_sense );
+                       }
+       YY_BREAK
+ case 58:
+ YY_RULE_SETUP
+-#line 253 "scan.l"
++#line 279 "scan.l"
+ performance_report += option_sense ? 1 : -1;
+       YY_BREAK
+ case 59:
+ YY_RULE_SETUP
+-#line 254 "scan.l"
++#line 280 "scan.l"
+ yytext_is_array = ! option_sense;
+       YY_BREAK
+ case 60:
+ YY_RULE_SETUP
+-#line 255 "scan.l"
++#line 281 "scan.l"
+ use_read = option_sense;
+       YY_BREAK
+ case 61:
+ YY_RULE_SETUP
+-#line 256 "scan.l"
++#line 282 "scan.l"
+ reject_really_used = option_sense;
+       YY_BREAK
+ case 62:
+ YY_RULE_SETUP
+-#line 257 "scan.l"
++#line 283 "scan.l"
+ action_define( "YY_STACK_USED", option_sense );
+       YY_BREAK
+ case 63:
+ YY_RULE_SETUP
+-#line 258 "scan.l"
++#line 284 "scan.l"
+ do_stdinit = option_sense;
+       YY_BREAK
+ case 64:
+ YY_RULE_SETUP
+-#line 259 "scan.l"
++#line 285 "scan.l"
+ use_stdout = option_sense;
+       YY_BREAK
+ case 65:
+ YY_RULE_SETUP
+-#line 260 "scan.l"
++#line 286 "scan.l"
+ ACTION_IFDEF("YY_NO_UNPUT", ! option_sense);
+       YY_BREAK
+ case 66:
+ YY_RULE_SETUP
+-#line 261 "scan.l"
++#line 287 "scan.l"
+ printstats = option_sense;
+       YY_BREAK
+ case 67:
+ YY_RULE_SETUP
+-#line 262 "scan.l"
++#line 288 "scan.l"
+ nowarn = ! option_sense;
+       YY_BREAK
+ case 68:
+ YY_RULE_SETUP
+-#line 263 "scan.l"
++#line 289 "scan.l"
+ do_yylineno = option_sense;
+       YY_BREAK
+ case 69:
+ YY_RULE_SETUP
+-#line 264 "scan.l"
++#line 290 "scan.l"
+ yymore_really_used = option_sense;
+       YY_BREAK
+ case 70:
+ YY_RULE_SETUP
+-#line 265 "scan.l"
++#line 291 "scan.l"
+ do_yywrap = option_sense;
+       YY_BREAK
+ case 71:
+ YY_RULE_SETUP
+-#line 267 "scan.l"
++#line 293 "scan.l"
+ ACTION_IFDEF("YY_NO_PUSH_STATE", ! option_sense);
+       YY_BREAK
+ case 72:
+ YY_RULE_SETUP
+-#line 268 "scan.l"
++#line 294 "scan.l"
+ ACTION_IFDEF("YY_NO_POP_STATE", ! option_sense);
+       YY_BREAK
+ case 73:
+ YY_RULE_SETUP
+-#line 269 "scan.l"
++#line 295 "scan.l"
+ ACTION_IFDEF("YY_NO_TOP_STATE", ! option_sense);
+       YY_BREAK
+ case 74:
+ YY_RULE_SETUP
+-#line 271 "scan.l"
++#line 297 "scan.l"
+ ACTION_IFDEF("YY_NO_SCAN_BUFFER", ! option_sense);
+       YY_BREAK
+ case 75:
+ YY_RULE_SETUP
+-#line 272 "scan.l"
++#line 298 "scan.l"
+ ACTION_IFDEF("YY_NO_SCAN_BYTES", ! option_sense);
+       YY_BREAK
+ case 76:
+ YY_RULE_SETUP
+-#line 273 "scan.l"
++#line 299 "scan.l"
+ ACTION_IFDEF("YY_NO_SCAN_STRING", ! option_sense);
+       YY_BREAK
+ case 77:
+ YY_RULE_SETUP
+-#line 275 "scan.l"
++#line 301 "scan.l"
+ return OPT_OUTFILE;
+       YY_BREAK
+ case 78:
+ YY_RULE_SETUP
+-#line 276 "scan.l"
++#line 302 "scan.l"
+ return OPT_PREFIX;
+       YY_BREAK
+ case 79:
+ YY_RULE_SETUP
+-#line 277 "scan.l"
++#line 303 "scan.l"
+ return OPT_YYCLASS;
+       YY_BREAK
+ case 80:
+ YY_RULE_SETUP
+-#line 279 "scan.l"
++#line 305 "scan.l"
++{
++                      if(strlen(yytext + 1 ) < MAXLINE) 
+ {
+                       strcpy( nmstr, yytext + 1 );
++                       } 
++                      else 
++                       { 
++                         fputs("Input line too long!\n", stderr); 
++                         exit(1);  
++                       } /* end of else */                    
+                       nmstr[strlen( nmstr ) - 1] = '\0';
+                       return NAME;
+                       }
+       YY_BREAK
+ case 81:
+ YY_RULE_SETUP
+-#line 285 "scan.l"
++#line 319 "scan.l"
+ {
+                       format_synerr( _( "unrecognized %%option: %s" ),
+                               yytext );
+@@ -2060,28 +2106,28 @@
+ case 82:
+ YY_RULE_SETUP
+-#line 292 "scan.l"
++#line 326 "scan.l"
+ ++linenum; BEGIN(INITIAL);
+       YY_BREAK
+ case 83:
+ YY_RULE_SETUP
+-#line 296 "scan.l"
++#line 330 "scan.l"
+ ++bracelevel; yyless( 2 );    /* eat only %{ */
+       YY_BREAK
+ case 84:
+ YY_RULE_SETUP
+-#line 297 "scan.l"
++#line 331 "scan.l"
+ --bracelevel; yyless( 2 );    /* eat only %} */
+       YY_BREAK
+ case 85:
+ YY_RULE_SETUP
+-#line 299 "scan.l"
++#line 333 "scan.l"
+ ACTION_ECHO;  /* indented code in prolog */
+       YY_BREAK
+ case 86:
+ YY_RULE_SETUP
+-#line 301 "scan.l"
++#line 335 "scan.l"
+ {     /* non-indented code */
+                       if ( bracelevel <= 0 )
+                               { /* not in %{ ... %} */
+@@ -2096,16 +2142,16 @@
+       YY_BREAK
+ case 87:
+ YY_RULE_SETUP
+-#line 313 "scan.l"
++#line 347 "scan.l"
+ ACTION_ECHO;
+       YY_BREAK
+ case 88:
+ YY_RULE_SETUP
+-#line 314 "scan.l"
++#line 348 "scan.l"
+ ++linenum; ACTION_ECHO;
+       YY_BREAK
+ case YY_STATE_EOF(SECT2PROLOG):
+-#line 316 "scan.l"
++#line 350 "scan.l"
+ {
+                       mark_prolog();
+                       sectnum = 0;
+@@ -2116,12 +2162,12 @@
+ case 89:
+ YY_RULE_SETUP
+-#line 324 "scan.l"
++#line 358 "scan.l"
+ ++linenum; /* allow blank lines in section 2 */
+       YY_BREAK
+ case 90:
+ YY_RULE_SETUP
+-#line 326 "scan.l"
++#line 360 "scan.l"
+ {
+                       indented_code = false;
+                       doing_codeblock = true;
+@@ -2131,17 +2177,17 @@
+       YY_BREAK
+ case 91:
+ YY_RULE_SETUP
+-#line 333 "scan.l"
++#line 367 "scan.l"
+ BEGIN(SC); return '<';
+       YY_BREAK
+ case 92:
+ YY_RULE_SETUP
+-#line 334 "scan.l"
++#line 368 "scan.l"
+ return '^';
+       YY_BREAK
+ case 93:
+ YY_RULE_SETUP
+-#line 335 "scan.l"
++#line 369 "scan.l"
+ BEGIN(QUOTE); return '"';
+       YY_BREAK
+ case 94:
+@@ -2149,7 +2195,7 @@
+ yy_c_buf_p = yy_cp = yy_bp + 1;
+ YY_DO_BEFORE_ACTION; /* set up yytext again */
+ YY_RULE_SETUP
+-#line 336 "scan.l"
++#line 370 "scan.l"
+ BEGIN(NUM); return '{';
+       YY_BREAK
+ case 95:
+@@ -2157,12 +2203,12 @@
+ yy_c_buf_p = yy_cp = yy_bp + 1;
+ YY_DO_BEFORE_ACTION; /* set up yytext again */
+ YY_RULE_SETUP
+-#line 337 "scan.l"
++#line 371 "scan.l"
+ return '$';
+       YY_BREAK
+ case 96:
+ YY_RULE_SETUP
+-#line 339 "scan.l"
++#line 373 "scan.l"
+ {
+                       bracelevel = 1;
+                       BEGIN(PERCENT_BRACE_ACTION);
+@@ -2177,12 +2223,12 @@
+       YY_BREAK
+ case 97:
+ YY_RULE_SETUP
+-#line 350 "scan.l"
++#line 384 "scan.l"
+ continued_action = true; ++linenum; return '\n';
+       YY_BREAK
+ case 98:
+ YY_RULE_SETUP
+-#line 352 "scan.l"
++#line 386 "scan.l"
+ {
+                       yyless( yyleng - 2 );   /* put back '/', '*' */
+                       bracelevel = 0;
+@@ -2192,12 +2238,12 @@
+       YY_BREAK
+ case 99:
+ YY_RULE_SETUP
+-#line 359 "scan.l"
++#line 393 "scan.l"
+ /* allow indented rules */
+       YY_BREAK
+ case 100:
+ YY_RULE_SETUP
+-#line 361 "scan.l"
++#line 395 "scan.l"
+ {
+                       /* This rule is separate from the one below because
+                        * otherwise we get variable trailing context, so
+@@ -2217,7 +2263,7 @@
+       YY_BREAK
+ case 101:
+ YY_RULE_SETUP
+-#line 378 "scan.l"
++#line 412 "scan.l"
+ {
+                       bracelevel = 0;
+                       continued_action = false;
+@@ -2233,15 +2279,15 @@
+                       }
+       YY_BREAK
+ case 102:
+-#line 393 "scan.l"
++#line 427 "scan.l"
+ case 103:
+ YY_RULE_SETUP
+-#line 393 "scan.l"
++#line 427 "scan.l"
+ return EOF_OP;
+       YY_BREAK
+ case 104:
+ YY_RULE_SETUP
+-#line 395 "scan.l"
++#line 429 "scan.l"
+ {
+                       sectnum = 3;
+                       BEGIN(SECT3);
+@@ -2250,11 +2296,19 @@
+       YY_BREAK
+ case 105:
+ YY_RULE_SETUP
+-#line 401 "scan.l"
++#line 435 "scan.l"
+ {
+                       int cclval;
++                      if(strlen(yytext ) < MAXLINE) 
++                       { 
+                       strcpy( nmstr, yytext );
++                       } 
++                      else 
++                       { 
++                         fputs("Input line too long!\n", stderr); 
++                         exit(1);  
++                       } 
+                       /* Check to see if we've already encountered this
+                        * ccl.
+@@ -2287,12 +2341,20 @@
+       YY_BREAK
+ case 106:
+ YY_RULE_SETUP
+-#line 435 "scan.l"
++#line 477 "scan.l"
+ {
+                       register Char *nmdefptr;
+                       Char *ndlookup();
++                      if(strlen(yytext + 1 ) < MAXLINE) 
++                       { 
+                       strcpy( nmstr, yytext + 1 );
++                       } 
++                      else 
++                       { 
++                         fputs("Input line too long!\n", stderr); 
++                         exit(1);  
++                       } /* end of else */                    
+                       nmstr[yyleng - 2] = '\0';  /* chop trailing brace */
+                       if ( (nmdefptr = ndlookup( nmstr )) == 0 )
+@@ -2324,24 +2386,24 @@
+       YY_BREAK
+ case 107:
+ YY_RULE_SETUP
+-#line 469 "scan.l"
++#line 519 "scan.l"
+ return (unsigned char) yytext[0];
+       YY_BREAK
+ case 108:
+ YY_RULE_SETUP
+-#line 470 "scan.l"
++#line 520 "scan.l"
+ RETURNCHAR;
+       YY_BREAK
+ case 109:
+ YY_RULE_SETUP
+-#line 475 "scan.l"
++#line 525 "scan.l"
+ return (unsigned char) yytext[0];
+       YY_BREAK
+ case 110:
+ YY_RULE_SETUP
+-#line 476 "scan.l"
++#line 526 "scan.l"
+ BEGIN(SECT2); return '>';
+       YY_BREAK
+ case 111:
+@@ -2349,17 +2411,17 @@
+ yy_c_buf_p = yy_cp = yy_bp + 1;
+ YY_DO_BEFORE_ACTION; /* set up yytext again */
+ YY_RULE_SETUP
+-#line 477 "scan.l"
++#line 527 "scan.l"
+ BEGIN(CARETISBOL); return '>';
+       YY_BREAK
+ case 112:
+ YY_RULE_SETUP
+-#line 478 "scan.l"
++#line 528 "scan.l"
+ RETURNNAME;
+       YY_BREAK
+ case 113:
+ YY_RULE_SETUP
+-#line 479 "scan.l"
++#line 529 "scan.l"
+ {
+                       format_synerr( _( "bad <start condition>: %s" ),
+                               yytext );
+@@ -2368,23 +2430,23 @@
+ case 114:
+ YY_RULE_SETUP
+-#line 485 "scan.l"
++#line 535 "scan.l"
+ BEGIN(SECT2); return '^';
+       YY_BREAK
+ case 115:
+ YY_RULE_SETUP
+-#line 489 "scan.l"
++#line 539 "scan.l"
+ RETURNCHAR;
+       YY_BREAK
+ case 116:
+ YY_RULE_SETUP
+-#line 490 "scan.l"
++#line 540 "scan.l"
+ BEGIN(SECT2); return '"';
+       YY_BREAK
+ case 117:
+ YY_RULE_SETUP
+-#line 492 "scan.l"
++#line 542 "scan.l"
+ {
+                       synerr( _( "missing quote" ) );
+                       BEGIN(SECT2);
+@@ -2399,7 +2461,7 @@
+ yy_c_buf_p = yy_cp = yy_bp + 1;
+ YY_DO_BEFORE_ACTION; /* set up yytext again */
+ YY_RULE_SETUP
+-#line 502 "scan.l"
++#line 552 "scan.l"
+ BEGIN(CCL); return '^';
+       YY_BREAK
+ case 119:
+@@ -2407,12 +2469,12 @@
+ yy_c_buf_p = yy_cp = yy_bp + 1;
+ YY_DO_BEFORE_ACTION; /* set up yytext again */
+ YY_RULE_SETUP
+-#line 503 "scan.l"
++#line 553 "scan.l"
+ return '^';
+       YY_BREAK
+ case 120:
+ YY_RULE_SETUP
+-#line 504 "scan.l"
++#line 554 "scan.l"
+ BEGIN(CCL); RETURNCHAR;
+       YY_BREAK
+@@ -2422,22 +2484,22 @@
+ yy_c_buf_p = yy_cp = yy_bp + 1;
+ YY_DO_BEFORE_ACTION; /* set up yytext again */
+ YY_RULE_SETUP
+-#line 508 "scan.l"
++#line 558 "scan.l"
+ return '-';
+       YY_BREAK
+ case 122:
+ YY_RULE_SETUP
+-#line 509 "scan.l"
++#line 559 "scan.l"
+ RETURNCHAR;
+       YY_BREAK
+ case 123:
+ YY_RULE_SETUP
+-#line 510 "scan.l"
++#line 560 "scan.l"
+ BEGIN(SECT2); return ']';
+       YY_BREAK
+ case 124:
+ YY_RULE_SETUP
+-#line 511 "scan.l"
++#line 561 "scan.l"
+ {
+                       synerr( _( "bad character class" ) );
+                       BEGIN(SECT2);
+@@ -2448,67 +2510,67 @@
+ case 125:
+ YY_RULE_SETUP
+-#line 519 "scan.l"
++#line 569 "scan.l"
+ BEGIN(CCL); return CCE_ALNUM;
+       YY_BREAK
+ case 126:
+ YY_RULE_SETUP
+-#line 520 "scan.l"
++#line 570 "scan.l"
+ BEGIN(CCL); return CCE_ALPHA;
+       YY_BREAK
+ case 127:
+ YY_RULE_SETUP
+-#line 521 "scan.l"
++#line 571 "scan.l"
+ BEGIN(CCL); return CCE_BLANK;
+       YY_BREAK
+ case 128:
+ YY_RULE_SETUP
+-#line 522 "scan.l"
++#line 572 "scan.l"
+ BEGIN(CCL); return CCE_CNTRL;
+       YY_BREAK
+ case 129:
+ YY_RULE_SETUP
+-#line 523 "scan.l"
++#line 573 "scan.l"
+ BEGIN(CCL); return CCE_DIGIT;
+       YY_BREAK
+ case 130:
+ YY_RULE_SETUP
+-#line 524 "scan.l"
++#line 574 "scan.l"
+ BEGIN(CCL); return CCE_GRAPH;
+       YY_BREAK
+ case 131:
+ YY_RULE_SETUP
+-#line 525 "scan.l"
++#line 575 "scan.l"
+ BEGIN(CCL); return CCE_LOWER;
+       YY_BREAK
+ case 132:
+ YY_RULE_SETUP
+-#line 526 "scan.l"
++#line 576 "scan.l"
+ BEGIN(CCL); return CCE_PRINT;
+       YY_BREAK
+ case 133:
+ YY_RULE_SETUP
+-#line 527 "scan.l"
++#line 577 "scan.l"
+ BEGIN(CCL); return CCE_PUNCT;
+       YY_BREAK
+ case 134:
+ YY_RULE_SETUP
+-#line 528 "scan.l"
++#line 578 "scan.l"
+ BEGIN(CCL); return CCE_SPACE;
+       YY_BREAK
+ case 135:
+ YY_RULE_SETUP
+-#line 529 "scan.l"
++#line 579 "scan.l"
+ BEGIN(CCL); return CCE_UPPER;
+       YY_BREAK
+ case 136:
+ YY_RULE_SETUP
+-#line 530 "scan.l"
++#line 580 "scan.l"
+ BEGIN(CCL); return CCE_XDIGIT;
+       YY_BREAK
+ case 137:
+ YY_RULE_SETUP
+-#line 531 "scan.l"
++#line 581 "scan.l"
+ {
+                       format_synerr(
+                               _( "bad character class expression: %s" ),
+@@ -2520,7 +2582,7 @@
+ case 138:
+ YY_RULE_SETUP
+-#line 540 "scan.l"
++#line 590 "scan.l"
+ {
+                       yylval = myctoi( yytext );
+                       return NUMBER;
+@@ -2528,17 +2590,17 @@
+       YY_BREAK
+ case 139:
+ YY_RULE_SETUP
+-#line 545 "scan.l"
++#line 595 "scan.l"
+ return ',';
+       YY_BREAK
+ case 140:
+ YY_RULE_SETUP
+-#line 546 "scan.l"
++#line 596 "scan.l"
+ BEGIN(SECT2); return '}';
+       YY_BREAK
+ case 141:
+ YY_RULE_SETUP
+-#line 548 "scan.l"
++#line 598 "scan.l"
+ {
+                       synerr( _( "bad character inside {}'s" ) );
+                       BEGIN(SECT2);
+@@ -2547,7 +2609,7 @@
+       YY_BREAK
+ case 142:
+ YY_RULE_SETUP
+-#line 554 "scan.l"
++#line 604 "scan.l"
+ {
+                       synerr( _( "missing }" ) );
+                       BEGIN(SECT2);
+@@ -2559,18 +2621,18 @@
+ case 143:
+ YY_RULE_SETUP
+-#line 564 "scan.l"
++#line 614 "scan.l"
+ bracelevel = 0;
+       YY_BREAK
+ case 144:
+ YY_RULE_SETUP
+-#line 566 "scan.l"
++#line 616 "scan.l"
+ ACTION_ECHO; yy_push_state( COMMENT );
+       YY_BREAK
+ case 145:
+ YY_RULE_SETUP
+-#line 569 "scan.l"
++#line 619 "scan.l"
+ {
+                       ACTION_ECHO;
+                       CHECK_REJECT(yytext);
+@@ -2578,7 +2640,7 @@
+       YY_BREAK
+ case 146:
+ YY_RULE_SETUP
+-#line 573 "scan.l"
++#line 623 "scan.l"
+ {
+                       ACTION_ECHO;
+                       CHECK_YYMORE(yytext);
+@@ -2587,12 +2649,12 @@
+ case 147:
+ YY_RULE_SETUP
+-#line 579 "scan.l"
++#line 629 "scan.l"
+ ACTION_ECHO;
+       YY_BREAK
+ case 148:
+ YY_RULE_SETUP
+-#line 580 "scan.l"
++#line 630 "scan.l"
+ {
+                       ++linenum;
+                       ACTION_ECHO;
+@@ -2612,37 +2674,37 @@
+ case 149:
+ YY_RULE_SETUP
+-#line 598 "scan.l"
++#line 648 "scan.l"
+ ACTION_ECHO; ++bracelevel;
+       YY_BREAK
+ case 150:
+ YY_RULE_SETUP
+-#line 599 "scan.l"
++#line 649 "scan.l"
+ ACTION_ECHO; --bracelevel;
+       YY_BREAK
+ case 151:
+ YY_RULE_SETUP
+-#line 600 "scan.l"
++#line 650 "scan.l"
+ ACTION_ECHO;
+       YY_BREAK
+ case 152:
+ YY_RULE_SETUP
+-#line 601 "scan.l"
++#line 651 "scan.l"
+ ACTION_ECHO;
+       YY_BREAK
+ case 153:
+ YY_RULE_SETUP
+-#line 602 "scan.l"
++#line 652 "scan.l"
+ ACTION_ECHO; /* character constant */
+       YY_BREAK
+ case 154:
+ YY_RULE_SETUP
+-#line 603 "scan.l"
++#line 653 "scan.l"
+ ACTION_ECHO; BEGIN(ACTION_STRING);
+       YY_BREAK
+ case 155:
+ YY_RULE_SETUP
+-#line 604 "scan.l"
++#line 654 "scan.l"
+ {
+                       ++linenum;
+                       ACTION_ECHO;
+@@ -2658,41 +2720,41 @@
+       YY_BREAK
+ case 156:
+ YY_RULE_SETUP
+-#line 616 "scan.l"
++#line 666 "scan.l"
+ ACTION_ECHO;
+       YY_BREAK
+ case 157:
+ YY_RULE_SETUP
+-#line 620 "scan.l"
++#line 670 "scan.l"
+ ACTION_ECHO;
+       YY_BREAK
+ case 158:
+ YY_RULE_SETUP
+-#line 621 "scan.l"
++#line 671 "scan.l"
+ ACTION_ECHO;
+       YY_BREAK
+ case 159:
+ YY_RULE_SETUP
+-#line 622 "scan.l"
++#line 672 "scan.l"
+ ++linenum; ACTION_ECHO;
+       YY_BREAK
+ case 160:
+ YY_RULE_SETUP
+-#line 623 "scan.l"
++#line 673 "scan.l"
+ ACTION_ECHO; BEGIN(ACTION);
+       YY_BREAK
+ case 161:
+ YY_RULE_SETUP
+-#line 624 "scan.l"
++#line 674 "scan.l"
+ ACTION_ECHO;
+       YY_BREAK
+ case YY_STATE_EOF(COMMENT):
+ case YY_STATE_EOF(ACTION):
+ case YY_STATE_EOF(ACTION_STRING):
+-#line 627 "scan.l"
++#line 677 "scan.l"
+ {
+                       synerr( _( "EOF encountered inside an action" ) );
+                       yyterminate();
+@@ -2700,7 +2762,7 @@
+       YY_BREAK
+ case 162:
+ YY_RULE_SETUP
+-#line 633 "scan.l"
++#line 683 "scan.l"
+ {
+                       yylval = myesc( (Char *) yytext );
+@@ -2713,25 +2775,25 @@
+ case 163:
+ YY_RULE_SETUP
+-#line 644 "scan.l"
++#line 694 "scan.l"
+ ECHO;
+       YY_BREAK
+ case YY_STATE_EOF(SECT3):
+-#line 645 "scan.l"
++#line 695 "scan.l"
+ sectnum = 0; yyterminate();
+       YY_BREAK
+ case 164:
+ YY_RULE_SETUP
+-#line 648 "scan.l"
++#line 698 "scan.l"
+ format_synerr( _( "bad character: %s" ), yytext );
+       YY_BREAK
+ case 165:
+ YY_RULE_SETUP
+-#line 650 "scan.l"
++#line 700 "scan.l"
+ YY_FATAL_ERROR( "flex scanner jammed" );
+       YY_BREAK
+-#line 2736 "scan.c"
++#line 2799 "scan.c"
+ case YY_STATE_EOF(INITIAL):
+ case YY_STATE_EOF(SECT2):
+ case YY_STATE_EOF(CODEBLOCK):
+@@ -3626,7 +3688,7 @@
+       return 0;
+       }
+ #endif
+-#line 650 "scan.l"
++#line 700 "scan.l"
+diff -urN flex-2.5.4.orig/scan.l flex-2.5.4/scan.l
+--- flex-2.5.4.orig/scan.l     Sun Jul 27 04:44:13 1997
++++ flex-2.5.4/scan.l  Sat Sep  7 11:04:34 2002
+@@ -49,7 +49,15 @@
+       return CHAR;
+ #define RETURNNAME \
++      if(strlen(yytext) < MAXLINE) \
++         { \
+       strcpy( nmstr, yytext ); \
++       } \
++      else \
++       { \
++         fputs("Input line too long!\n", stderr); \
++         exit(1);  \
++       } /* end of else */  \
+       return NAME;
+ #define PUT_BACK_STRING(str, start) \
+@@ -136,7 +144,15 @@
+       ^"%"[^sxaceknopr{}].*   synerr( _( "unrecognized '%' directive" ) );
+       ^{NAME}         {
++                      if(strlen(yytext) < MAXLINE) 
++                       { 
+                       strcpy( nmstr, yytext );
++                       } 
++                      else 
++                       { 
++                         fputs("Input line too long!\n", stderr); 
++                         exit(1);  
++                       } /* end of else */  
+                       didadef = false;
+                       BEGIN(PICKUPDEF);
+                       }
+@@ -184,7 +200,17 @@
+       {WS}            /* separates name and definition */
+       {NOT_WS}.*      {
++                      if(strlen(yytext) < MAXLINE)
++                       {
+                       strcpy( (char *) nmdef, yytext );
++                       } 
++                      else
++                       {
++                         fputs("Input line too long!\n", stderr);
++                         exit(1); 
++                       } /* end of else */
++  
++ 
+                       /* Skip trailing whitespace. */
+                       for ( i = strlen( (char *) nmdef ) - 1;
+@@ -277,7 +303,15 @@
+       yyclass         return OPT_YYCLASS;
+       \"[^"\n]*\"     {
++                      if(strlen(yytext + 1 ) < MAXLINE) 
++                       { 
+                       strcpy( nmstr, yytext + 1 );
++                       } 
++                      else 
++                       { 
++                         fputs("Input line too long!\n", stderr); 
++                         exit(1);  
++                       } /* end of else */                    
+                       nmstr[strlen( nmstr ) - 1] = '\0';
+                       return NAME;
+                       }
+@@ -401,7 +435,15 @@
+       "["({FIRST_CCL_CHAR}|{CCL_EXPR})({CCL_CHAR}|{CCL_EXPR})*        {
+                       int cclval;
++                      if(strlen(yytext ) < MAXLINE) 
++                       { 
+                       strcpy( nmstr, yytext );
++                       } 
++                      else 
++                       { 
++                         fputs("Input line too long!\n", stderr); 
++                         exit(1);  
++                       } 
+                       /* Check to see if we've already encountered this
+                        * ccl.
+@@ -436,7 +478,15 @@
+                       register Char *nmdefptr;
+                       Char *ndlookup();
++                      if(strlen(yytext + 1 ) < MAXLINE) 
++                       { 
+                       strcpy( nmstr, yytext + 1 );
++                       } 
++                      else 
++                       { 
++                         fputs("Input line too long!\n", stderr); 
++                         exit(1);  
++                       } /* end of else */                    
+                       nmstr[yyleng - 2] = '\0';  /* chop trailing brace */
+                       if ( (nmdefptr = ndlookup( nmstr )) == 0 )
This page took 0.064071 seconds and 4 git commands to generate.