When SHELL env is not set, it cause xstrdup(NULL) be executed, and result in weird error message ".: applet not found" instead of /bin/sh being used.
void __attribute__((__noreturn__)) exec_shell(void)
{
const char *shell = getenv("SHELL");
- char *shellc = xstrdup(shell);
+ char *shellc;
const char *shell_basename;
char *arg0;
if (!shell)
shell = DEFAULT_SHELL;
+ shellc = xstrdup(shell);
shell_basename = basename(shellc);
arg0 = xmalloc(strlen(shell_basename) + 2);
arg0[0] = '-';