This is the mail archive of the
mailing list for the elfutils project.
Re: [patch] Fix for PIE with both -e and --core in use
- From: Jan Kratochvil <jan dot kratochvil at redhat dot com>
- To: elfutils-devel at lists dot fedorahosted dot org
- Date: Wed, 28 Nov 2012 17:25:59 +0100
- Subject: Re: [patch] Fix for PIE with both -e and --core in use
On Wed, 28 Nov 2012 17:03:04 +0100, Mark Wielaard wrote:
> I don't like a new field in struct Dwfl_Module that is only used for
> this single thing. So if we can store the state somewhere else that
> would be nice.
I had the same issue, this is was one of the reasons I used the USERDATA
> I see what you are saying can happen theoretically, but have a little
> trouble imagining when this would every happen. If you are just using
> parse_argp for command line parsing I don't really see how that would
> happen. Are you thinking of some server program that would reuse
> dwfl_standard_argp () multiple times?
There are two issues:
Reusing of USERDATA instead of separate Dwfl_Module->executable_for_core:
The problem is that Dwfl_Module will remain without opening its Elf file
possibly very long from the parse_opt call till someone requests the Elf file.
So the USERDATA field is in fact used indefinitely/permanently.
Using dwfl_standard_argp () multiple times:
I agree this is very unlikely. But I find good coding practice to never use
global variables. And the field state->hook vs. field state->input and their
handling in ARGP_KEY_ERROR etc. is already so cryptic that if the original
author could use a global variable I am certain he would certainly do it.
He did not so I did not want to break this reentrancy validity of code.