On Fri, Apr 8, 2011 at 10:04 PM, Alan Coopersmith <alan.coopersm...@oracle.com> wrote: > Signed-off-by: Alan Coopersmith <alan.coopersm...@oracle.com>
Obvious question to this is was the string returned from GET_PROGRAM_NAME freed in the past? Cheers Jakob. > --- > src/mesa/drivers/dri/common/xmlconfig.c | 20 +++++++++++++++++++- > 1 files changed, 19 insertions(+), 1 deletions(-) > > diff --git a/src/mesa/drivers/dri/common/xmlconfig.c > b/src/mesa/drivers/dri/common/xmlconfig.c > index 0312c07..0226b38 100644 > --- a/src/mesa/drivers/dri/common/xmlconfig.c > +++ b/src/mesa/drivers/dri/common/xmlconfig.c > @@ -64,7 +64,25 @@ extern char *program_invocation_name, > *program_invocation_short_name; > the basename to match BSD getprogname() */ > # include <stdlib.h> > # include <libgen.h> > -# define GET_PROGRAM_NAME() basename(getexecname()) > + > +static const char *__getProgramName () { > + static const char *progname; > + > + if (progname == NULL) { > + const char *e = getexecname(); > + if (e != NULL) { > + /* Have to make a copy since getexecname can return a readonly > + string, but basename expects to be able to modify its arg. */ > + char *n = strdup(e); > + if (n != NULL) { > + progname = basename(n); > + } > + } > + } > + return progname; > +} > + > +# define GET_PROGRAM_NAME() __getProgramName() > #endif > > #if !defined(GET_PROGRAM_NAME) > -- > 1.7.3.2 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev