]> git.saurik.com Git - bison.git/commit - src/named-ref.h
named references: fix double free.
authorAkim Demaille <demaille@gostai.com>
Wed, 9 Mar 2011 20:10:35 +0000 (21:10 +0100)
committerAkim Demaille <demaille@gostai.com>
Wed, 9 Mar 2011 20:10:35 +0000 (21:10 +0100)
commita4d1bf6a9cdd337fc113c5a3fc7424e7491d6ea5
tree0dda502bac89f9cbff055073d1bd2df99be6479d
parent17d7bf83d02e2272c54d3486075091156d5d649f
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.

(cherry picked from commit 8f462efe923947cc4e72deea5b0fa93a5f88000d)

Conflicts:

src/parse-gram.y
ChangeLog
THANKS
src/named-ref.c
src/named-ref.h
src/parse-gram.y
src/reader.c
src/symlist.c
tests/named-refs.at