checkpolicy: use YYerror only when available
The special error value YYerror is only available since bison 3.6 (released 2020). For example the version used by oss-fuzz does not support it. Use a special token in case YYerror is not available. Only downside is a duplicate error message, one from the manual yyerror() call and one from within bison for the unexpected special token (which would be omitted by using YYerror). Signed-off-by: Christian Göttsche <cgzones@googlemail.com> Acked-by: James Carter <jwcart2@gmail.com>
This commit is contained in:
parent
6e2f703340
commit
ca77c59299
|
@ -153,6 +153,7 @@ typedef int (* require_func_t)(int pass);
|
||||||
%token FILESYSTEM
|
%token FILESYSTEM
|
||||||
%token DEFAULT_USER DEFAULT_ROLE DEFAULT_TYPE DEFAULT_RANGE
|
%token DEFAULT_USER DEFAULT_ROLE DEFAULT_TYPE DEFAULT_RANGE
|
||||||
%token LOW_HIGH LOW HIGH GLBLUB
|
%token LOW_HIGH LOW HIGH GLBLUB
|
||||||
|
%token INVALID_CHAR
|
||||||
|
|
||||||
%left OR
|
%left OR
|
||||||
%left XOR
|
%left XOR
|
||||||
|
|
|
@ -308,7 +308,14 @@ GLBLUB { return(GLBLUB); }
|
||||||
"]" |
|
"]" |
|
||||||
"~" |
|
"~" |
|
||||||
"*" { return(yytext[0]); }
|
"*" { return(yytext[0]); }
|
||||||
. { yyerror("unrecognized character"); return YYerror; }
|
. { yyerror("unrecognized character");
|
||||||
|
/* Available since bison 3.6, avoids duplicate error message */
|
||||||
|
#ifdef YYerror
|
||||||
|
return YYerror;
|
||||||
|
#else
|
||||||
|
return INVALID_CHAR;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
%%
|
%%
|
||||||
int yyerror(const char *msg)
|
int yyerror(const char *msg)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue