From: Alan Coopersmith Date: Fri, 8 Apr 2011 20:03:16 +0000 (-0700) Subject: Fix GET_PROGRAM_NAME() on Solaris to not try to modify a read-only string X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=64ce3933f59f71ac78d83b8b3db813b6d2619382;p=mesa.git Fix GET_PROGRAM_NAME() on Solaris to not try to modify a read-only string Signed-off-by: Alan Coopersmith --- diff --git a/src/mesa/drivers/dri/common/xmlconfig.c b/src/mesa/drivers/dri/common/xmlconfig.c index 0312c072437..0226b38c4fc 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 # include -# 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)