mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-12 05:43:03 +00:00
named references: fix double free.
In `rhs[name]: "a" | "b"', do not free "name" twice. Reported by Tys Lefering. <http://lists.gnu.org/archive/html/bug-bison/2010-06/msg00002.html> * src/named-ref.h, src/named-ref.c (named_ref_copy): New. * src/parse-gram.y (current_lhs): Rename as... (current_lhs_symbol): this. (current_lhs): New function. Use it to free the current lhs named reference. * src/reader.c: Bind lhs to a copy of the current named reference. * src/symlist.c: Rely on free (0) being valid. * tests/named-refs.at: Test this.
This commit is contained in:
@@ -231,7 +231,7 @@ grammar_current_rule_begin (symbol *lhs, location loc,
|
||||
|
||||
p = grammar_symbol_append (lhs, loc);
|
||||
if (lhs_name)
|
||||
assign_named_ref(p, lhs_name);
|
||||
assign_named_ref (p, named_ref_copy (lhs_name));
|
||||
|
||||
current_rule = grammar_end;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user