diff options
Diffstat (limited to '')
| -rw-r--r-- | src/engine-spawn.c | 8 | 
1 files changed, 8 insertions, 0 deletions
| diff --git a/src/engine-spawn.c b/src/engine-spawn.c index 1e71c1cc..bfcad3d9 100644 --- a/src/engine-spawn.c +++ b/src/engine-spawn.c @@ -231,6 +231,7 @@ engspawn_start (engine_spawn_t esp, const char *file, const char *argv[],    struct spawn_fd_item_s *fd_list;    pid_t pid;    unsigned int spflags; +  const char *save_argv0 = NULL;    if (!esp || !file || !argv || !argv[0])      return gpg_error (GPG_ERR_INV_VALUE); @@ -264,8 +265,15 @@ engspawn_start (engine_spawn_t esp, const char *file, const char *argv[],    fd_list[n].fd = -1;    fd_list[n].dup_to = -1; +  if (argv[0] && !*argv[0]) +    { +      save_argv0 = argv[0]; +      argv[0] = _gpgme_get_basename (file); +    }    status = _gpgme_io_spawn (file, (char * const *)argv, spflags,                              fd_list, NULL, NULL, &pid); +  if (save_argv0) +    argv[0] = save_argv0;    free (fd_list);    if (status == -1)      return gpg_error_from_syserror (); | 
