mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 14:48:21 +00:00
rule-scan: Copy yytext strings
When trying to use TOK_IDENT and TOK_STRING in a single rule, that resulted in "corrupt" strings. https://www.gnu.org/software/bison/manual/html_node/Strings-are-Destroyed.html
This commit is contained in:
parent
0aef842f05
commit
b795c0bfc1
1 changed files with 4 additions and 4 deletions
|
@ -187,17 +187,17 @@ finger { rules_lval.val = zeek::detail::Rule::FINGER; return TOK_PATTERN_TYPE; }
|
||||||
|
|
||||||
{STRING} {
|
{STRING} {
|
||||||
*(yytext + strlen(yytext) - 1) = '\0';
|
*(yytext + strlen(yytext) - 1) = '\0';
|
||||||
rules_lval.str = yytext + 1;
|
rules_lval.str = zeek::util::copy_string(yytext + 1);
|
||||||
return TOK_STRING;
|
return TOK_STRING;
|
||||||
}
|
}
|
||||||
|
|
||||||
{ID} {
|
{ID} {
|
||||||
rules_lval.str = yytext;
|
rules_lval.str = zeek::util::copy_string(yytext);
|
||||||
return TOK_IDENT;
|
return TOK_IDENT;
|
||||||
}
|
}
|
||||||
|
|
||||||
<PS>{PID} {
|
<PS>{PID} {
|
||||||
rules_lval.str = yytext;
|
rules_lval.str = zeek::util::copy_string(yytext);
|
||||||
return TOK_POLICY_SYMBOL;
|
return TOK_POLICY_SYMBOL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -216,7 +216,7 @@ finger { rules_lval.val = zeek::detail::Rule::FINGER; return TOK_PATTERN_TYPE; }
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
*(yytext + len - 1) = '\0';
|
*(yytext + len - 1) = '\0';
|
||||||
rules_lval.str = yytext + 1;
|
rules_lval.str = zeek::util::copy_string(yytext + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
return TOK_PATTERN;
|
return TOK_PATTERN;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue