Ian Jackson
2011-Jan-12 14:22 UTC
[Xen-devel] [PATCH] libxl: config parser: Rebuild config file parser scanner
# HG changeset patch # User Ian Jackson <Ian.Jackson@eu.citrix.com> # Date 1294841653 0 # Node ID 20b0f709153e9e36c937caae8ec0b816c8ad1cfd # Parent c3e478eafabce2840a170da0fbc92458afb95386 libxl: config parser: Rebuild config file parser scanner (rerun flex) The scanner from c/s 22735:cb94dbe20f97 is buggy and crashes with a segmentation fault. Rebuilding the sanner appears to fix the problem so it appears that I somehow accidentally checked in a scanner which doesn''t correspond to the committed scanner source code. Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com> diff -r c3e478eafabc -r 20b0f709153e tools/libxl/libxlu_cfg_l.c --- a/tools/libxl/libxlu_cfg_l.c Wed Jan 12 10:53:56 2011 +0000 +++ b/tools/libxl/libxlu_cfg_l.c Wed Jan 12 14:14:13 2011 +0000 @@ -379,12 +379,12 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[34] +static yyconst flex_int16_t yy_accept[35] { 0, - 0, 0, 13, 13, 16, 12, 3, 9, 12, 12, - 12, 4, 2, 8, 7, 5, 6, 1, 13, 13, - 14, 0, 11, 0, 0, 9, 0, 10, 0, 2, - 1, 13, 0 + 0, 0, 14, 14, 17, 13, 3, 9, 13, 13, + 13, 12, 4, 2, 8, 7, 5, 6, 1, 14, + 14, 15, 0, 11, 0, 0, 9, 0, 10, 0, + 2, 1, 14, 0 } ; static yyconst flex_int32_t yy_ec[256] @@ -809,13 +809,13 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 34 ) + if ( yy_current_state >= 35 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } - while ( yy_current_state != 33 ); + while ( yy_current_state != 34 ); yy_cp = yyg->yy_last_accepting_cpos; yy_current_state = yyg->yy_last_accepting_state; @@ -919,34 +919,43 @@ YY_RULE_SETUP YY_RULE_SETUP #line 67 "libxlu_cfg_l.l" { + ctx->likely_python= 1; BEGIN(lexerr); yymore(); } YY_BREAK case 13: YY_RULE_SETUP -#line 72 "libxlu_cfg_l.l" +#line 73 "libxlu_cfg_l.l" +{ + BEGIN(lexerr); + yymore(); + } + YY_BREAK +case 14: +YY_RULE_SETUP +#line 78 "libxlu_cfg_l.l" { xlu__cfgl_lexicalerror(ctx,"lexical error"); BEGIN(0); } YY_BREAK -case 14: -/* rule 14 can match eol */ +case 15: +/* rule 15 can match eol */ YY_RULE_SETUP -#line 77 "libxlu_cfg_l.l" +#line 83 "libxlu_cfg_l.l" { xlu__cfgl_lexicalerror(ctx,"lexical error"); BEGIN(0); GOT(NEWLINE); } YY_BREAK -case 15: +case 16: YY_RULE_SETUP -#line 82 "libxlu_cfg_l.l" +#line 88 "libxlu_cfg_l.l" YY_FATAL_ERROR( "flex scanner jammed" ); YY_BREAK -#line 948 "libxlu_cfg_l.c" +#line 959 "libxlu_cfg_l.c" case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(lexerr): yyterminate(); @@ -1242,7 +1251,7 @@ static int yy_get_next_buffer (yyscan_t while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 34 ) + if ( yy_current_state >= 35 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -1271,11 +1280,11 @@ static int yy_get_next_buffer (yyscan_t while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 34 ) + if ( yy_current_state >= 35 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 33); + yy_is_jam = (yy_current_state == 34); return yy_is_jam ? 0 : yy_current_state; } _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel