Fix a regression from 2010-06-09.

This commit is contained in:
Werner Koch 2010-06-24 10:51:30 +00:00
parent 1e7b03ef25
commit c8bafe218c
8 changed files with 29 additions and 12 deletions

View File

@ -1,3 +1,8 @@
2010-06-24 Werner Koch <wk@g10code.com>
* genkey.c (check_passphrase_pattern): Use HANG option for
gnupg_wait_progress. Fixes regression from 2010-06-09.
2010-06-21 Werner Koch <wk@g10code.com> 2010-06-21 Werner Koch <wk@g10code.com>
* protect-tool.c (export_p12_file, import_p12_cert_cb) * protect-tool.c (export_p12_file, import_p12_cert_cb)

View File

@ -129,7 +129,7 @@ check_passphrase_pattern (ctrl_t ctrl, const char *pw)
if (gnupg_spawn_process_fd (pgmname, argv, fileno (infp), -1, -1, &pid)) if (gnupg_spawn_process_fd (pgmname, argv, fileno (infp), -1, -1, &pid))
result = 1; /* Execute error - assume password should no be used. */ result = 1; /* Execute error - assume password should no be used. */
else if (gnupg_wait_process (pgmname, pid, 0, NULL)) else if (gnupg_wait_process (pgmname, pid, 1, NULL))
result = 1; /* Helper returned an error - probably a match. */ result = 1; /* Helper returned an error - probably a match. */
else else
result = 0; /* Success; i.e. no match. */ result = 0; /* Success; i.e. no match. */

View File

@ -1,3 +1,9 @@
2010-06-24 Werner Koch <wk@g10code.com>
* asshelp.c (lock_agent_spawning) [W32]: Use CreateMutexW.
(start_new_gpg_agent): Use HANG option for gnupg_wait_progress.
Fixes regression from 2010-06-09.
2010-06-21 Werner Koch <wk@g10code.com> 2010-06-21 Werner Koch <wk@g10code.com>
* util.h (xfree_fnc): New. * util.h (xfree_fnc): New.
@ -41,7 +47,7 @@
* util.h (GNUPG_MODULE_NAME_DIRMNGR_LDAP): New. * util.h (GNUPG_MODULE_NAME_DIRMNGR_LDAP): New.
* homedir.c (gnupg_cachedir): New. * homedir.c (gnupg_cachedir): New.
(w32_try_mkdir): New. (w32_try_mkdir): New.
(dirmngr_socket_name): Chanmge standard socket name. (dirmngr_socket_name): Change standard socket name.
(gnupg_module_name): Support GNUPG_MODULE_NAME_DIRMNGR_LDAP. (gnupg_module_name): Support GNUPG_MODULE_NAME_DIRMNGR_LDAP.
* logging.c (log_set_get_tid_callback): Replace by ... * logging.c (log_set_get_tid_callback): Replace by ...

View File

@ -226,7 +226,7 @@ lock_agent_spawning (lock_agent_t *lock, const char *homedir)
(void)homedir; /* Not required. */ (void)homedir; /* Not required. */
*lock = CreateMutex (NULL, FALSE, "GnuPG_spawn_agent_sentinel"); *lock = CreateMutexW (NULL, FALSE, L"GnuPG_spawn_agent_sentinel");
if (!*lock) if (!*lock)
{ {
log_error ("failed to create the spawn_agent mutex: %s\n", log_error ("failed to create the spawn_agent mutex: %s\n",
@ -362,10 +362,10 @@ start_new_gpg_agent (assuan_context_t *r_ctx,
if (err) if (err)
log_debug ("starting `%s' for testing failed: %s\n", log_debug ("starting `%s' for testing failed: %s\n",
agent_program, gpg_strerror (err)); agent_program, gpg_strerror (err));
else if ((err = gnupg_wait_process (agent_program, pid, 0, &excode))) else if ((err = gnupg_wait_process (agent_program, pid, 1, &excode)))
{ {
if (excode == -1) if (excode == -1)
log_debug ("running `%s' for testing failed: %s\n", log_debug ("running `%s' for testing failed (wait): %s\n",
agent_program, gpg_strerror (err)); agent_program, gpg_strerror (err));
} }
gnupg_release_process (pid); gnupg_release_process (pid);

View File

@ -304,7 +304,7 @@ run_encfs_tool (ctrl_t ctrl, enum encfs_cmds cmd,
close (outbound[1]); close (outbound[1]);
if (pid != (pid_t)(-1)) if (pid != (pid_t)(-1))
{ {
gnupg_wait_process (pgmname, pid, 0, NULL); gnupg_wait_process (pgmname, pid, 1, NULL);
gnupg_release_process (pid); gnupg_release_process (pid);
} }
runner_release (runner); runner_release (runner);

View File

@ -165,7 +165,7 @@ runner_release (runner_t runner)
arbitrary NAME of the runner object. However it does not arbitrary NAME of the runner object. However it does not
matter because that information is only used for matter because that information is only used for
diagnostics.) */ diagnostics.) */
gnupg_wait_process (runner->name, runner->pid, 0, NULL); gnupg_wait_process (runner->name, runner->pid, 1, NULL);
gnupg_release_process (runner->pid); gnupg_release_process (runner->pid);
} }
@ -371,7 +371,7 @@ runner_thread (void *arg)
int exitcode; int exitcode;
log_debug ("runner thread waiting ...\n"); log_debug ("runner thread waiting ...\n");
err = gnupg_wait_process (runner->name, runner->pid, 0, &exitcode); err = gnupg_wait_process (runner->name, runner->pid, 1, &exitcode);
gnupg_release_process (runner->pid); gnupg_release_process (runner->pid);
runner->pid = (pid_t)(-1); runner->pid = (pid_t)(-1);
if (err) if (err)

View File

@ -1,3 +1,9 @@
2010-06-24 Werner Koch <wk@g10code.com>
* gpgconf-comp.c (gpg_agent_runtime_change)
(scdaemon_runtime_change, retrieve_options_from_program): Use HANG
option for gnupg_wait_progress. Fixes regression from 2010-06-09.
2010-06-07 Werner Koch <wk@g10code.com> 2010-06-07 Werner Koch <wk@g10code.com>
* gpgtar.c, gpgtar.h, gpgtar-list.c, gpgtar-create.c * gpgtar.c, gpgtar.h, gpgtar-list.c, gpgtar-create.c

View File

@ -1051,7 +1051,7 @@ gpg_agent_runtime_change (void)
err = gnupg_spawn_process_fd (pgmname, argv, -1, -1, -1, &pid); err = gnupg_spawn_process_fd (pgmname, argv, -1, -1, -1, &pid);
if (!err) if (!err)
err = gnupg_wait_process (pgmname, pid, 0, NULL); err = gnupg_wait_process (pgmname, pid, 1, NULL);
if (err) if (err)
gc_error (0, 0, "error running `%s%s': %s", gc_error (0, 0, "error running `%s%s': %s",
pgmname, " reloadagent", gpg_strerror (err)); pgmname, " reloadagent", gpg_strerror (err));
@ -1083,7 +1083,7 @@ scdaemon_runtime_change (void)
err = gnupg_spawn_process_fd (pgmname, argv, -1, -1, -1, &pid); err = gnupg_spawn_process_fd (pgmname, argv, -1, -1, -1, &pid);
if (!err) if (!err)
err = gnupg_wait_process (pgmname, pid, 0, NULL); err = gnupg_wait_process (pgmname, pid, 1, NULL);
if (err) if (err)
gc_error (0, 0, "error running `%s%s': %s", gc_error (0, 0, "error running `%s%s': %s",
pgmname, " scd killscd", gpg_strerror (err)); pgmname, " scd killscd", gpg_strerror (err));
@ -1503,7 +1503,7 @@ gc_component_check_options (int component, FILE *out, const char *conf_file)
close (filedes[1]); close (filedes[1]);
errlines = collect_error_output (filedes[0], errlines = collect_error_output (filedes[0],
gc_component[component].name); gc_component[component].name);
if (gnupg_wait_process (pgmname, pid, 0, &exitcode)) if (gnupg_wait_process (pgmname, pid, 1, &exitcode))
{ {
if (exitcode == -1) if (exitcode == -1)
result |= 1; /* Program could not be run or it result |= 1; /* Program could not be run or it
@ -1922,7 +1922,7 @@ retrieve_options_from_program (gc_component_t component, gc_backend_t backend)
if (fclose (config) && ferror (config)) if (fclose (config) && ferror (config))
gc_error (1, errno, "error closing %s", pgmname); gc_error (1, errno, "error closing %s", pgmname);
err = gnupg_wait_process (pgmname, pid, 0, &exitcode); err = gnupg_wait_process (pgmname, pid, 1, &exitcode);
if (err) if (err)
gc_error (1, 0, "running %s failed (exitcode=%d): %s", gc_error (1, 0, "running %s failed (exitcode=%d): %s",
pgmname, exitcode, gpg_strerror (err)); pgmname, exitcode, gpg_strerror (err));