bug fix for 3.35-beta10

From: Panagiotis Tsirigotis (pgttso_at_best.com)
Date: Tue May 23 2000 - 09:32:36 BST


Here is the bug: 3.35beta10 (and previous beta's, and 3.34) would
immediately core dump while reading the symbol table for my C++ program. I
finally traced the problem to the mop_up function in ao_symscan.c. The
function would release the memory of the previous_argument string, but
would not set previous_argument to NULL.

The bug was triggered by using a g++ that generates vtable thunks
for virtual function dispatch. These pseudo-functions have a name
that contains the string "__thunk_"; while demangling their name,
ups invokes internal_cplus_demangle recursively; therefore, mop_up
is also invoked twice, and because of this bug, it would
try to free the memory associated with previous_argument twice.

The fix is trivial; I am attaching the context diff.
Now, I still have to figure out why sometimes ups is unable
to find class definitions......

Panos






This archive was generated by hypermail 2.1.4 : Wed Feb 13 2002 - 21:51:33 GMT