[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: dangling pointer bug and proposed patch
From: |
Eric Blake |
Subject: |
Re: dangling pointer bug and proposed patch |
Date: |
Tue, 06 Jun 2006 06:38:47 -0600 |
User-agent: |
Thunderbird 1.5.0.4 (Windows/20060516) |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
According to Eric Blake on 6/3/2006 2:51 PM:
> I will apply it in a couple of days if I don't hear any feedback, at which
> point all known core dumps in 1.4.4 will be solved, and we can start
> thinking about releasing 1.4.5.
>
> 2006-06-03 Eric Blake <address@hidden>
>
> When changing macro definitions inside the arguments to the macro,
> consistently preserve the old definition that was in effect before
> argument collection, similar to the C pre-processor.
> * NEWS: Document this change.
> * doc/m4.texinfo (Macro Arguments, Undefine, Dumpdef): Document
> this policy, and add tests that expose core dumps prior to this
> patch.
> * src/m4.h (struct symbol): New members to track when a symbol is
> still in use after removal from the symbol table.
> (SYMBOL_PENDING_EXPANSIONS, SYMBOL_DELETED): Define.
> (free_symbol): Prototype.
> * src/macro.c (expand_macro): Track pending expansions of a
> symbol. On completion, if a symbol is deleted and no longer
> pending, free its memory.
> * src/symtab.c (free_symbol): Export. Don't free memory if symbol
> is still in use.
> (lookup_symbol) <SYMBOL_INSERT>: Create new entry when old entry
> is still in use.
> (lookup_symbol) <SYMBOL_DELETE, SYMBOL_POPDEF>: Mark entries still
> in use as deleted and remove from the table without freeing
> memory.
> (symtab_debug, symtab_print_list): Fix for debugging.
FYI: I have applied this patch. One more followon is coming.
- --
Life is short - so eat dessert first!
Eric Blake address@hidden
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.1 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFEhXdX84KuGfSFAYARAixKAJ449VC3Ssi1sw6QjMN7GtXlklIqkQCfTpDQ
hZq1JN6bdqaScV3HAWg+c+s=
=nnhZ
-----END PGP SIGNATURE-----