From bb2d11c1eebd4bcfb0f2cfce728026a7420dca47 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Wed, 28 Oct 2015 16:27:49 +0100 Subject: [PATCH] w32: Add extra diagnostic about possible missing gpgme-w32spawn.exe. * src/w32-io.c (_gpgme_io_spawn): Add a new diagnostic. Signed-off-by: Werner Koch --- src/w32-io.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/w32-io.c b/src/w32-io.c index 42961e31..a6d52388 100644 --- a/src/w32-io.c +++ b/src/w32-io.c @@ -1550,6 +1550,7 @@ _gpgme_io_spawn (const char *path, char *const argv[], unsigned int flags, int debug_me = 0; int tmp_fd; char *tmp_name; + const char *spawnhelper; TRACE_BEG1 (DEBUG_SYSIO, "_gpgme_io_spawn", path, "path=%s", path); @@ -1603,7 +1604,8 @@ _gpgme_io_spawn (const char *path, char *const argv[], unsigned int flags, if ((flags & IOSPAWN_FLAG_DETACHED)) cr_flags |= DETACHED_PROCESS; cr_flags |= GetPriorityClass (GetCurrentProcess ()); - if (!CreateProcessA (_gpgme_get_w32spawn_path (), + spawnhelper = _gpgme_get_w32spawn_path (); + if (!CreateProcessA (spawnhelper, arg_string, &sec_attr, /* process security attributes */ &sec_attr, /* thread security attributes */ @@ -1614,7 +1616,10 @@ _gpgme_io_spawn (const char *path, char *const argv[], unsigned int flags, &si, /* startup information */ &pi)) /* returns process information */ { - TRACE_LOG1 ("CreateProcess failed: ec=%d", (int) GetLastError ()); + int lasterr = (int)GetLastError (); + TRACE_LOG1 ("CreateProcess failed: ec=%d", lasterr); + if (lasterr == ERROR_INVALID_PARAMETER) + TRACE_LOG1 ("(is '%s' correctly installed?)", spawnhelper); free (arg_string); close (tmp_fd); DeleteFileA (tmp_name);