basename may modify its argument, so we need to strdup before calling
basename.

SVN revision: 48128
devs/princeamd/enlightenment-0.17-elive
Sebastian Dransfeld 13 years ago
parent 90517199bc
commit 52bb692ae8
  1. 14
      src/bin/e_exehist.c

@ -434,14 +434,18 @@ _e_exehist_limit(void)
static const char *
_e_exehist_normalize_exe(const char *exe)
{
char *base, *cp, *space = NULL;
char *base, *buf, *cp, *space = NULL;
const char *ret;
Eina_Bool flag = EINA_FALSE;
base = basename((char *)exe);
if ((base[0] == '.') && (base[1] == '\0')) return NULL;
buf = strdup(exe);
base = basename(buf);
if ((base[0] == '.') && (base[1] == '\0'))
{
free(buf);
return NULL;
}
base = strdup(base);
cp = base;
while (*cp)
{
@ -469,7 +473,7 @@ _e_exehist_normalize_exe(const char *exe)
if (space) *space = '\0';
ret = eina_stringshare_add(base);
free(base);
free(buf);
return ret;
}

Loading…
Cancel
Save