diff options
author | NIIBE Yutaka <[email protected]> | 2022-11-28 04:55:50 +0000 |
---|---|---|
committer | NIIBE Yutaka <[email protected]> | 2022-11-28 04:55:50 +0000 |
commit | 588f353db1459c557603886964095d5a4176f794 (patch) | |
tree | 91a948c0c59b000c5c654f75fc70ff97ec82fe09 | |
parent | tests: Replace spawn-process by process-spawn. (diff) | |
download | gnupg-588f353db1459c557603886964095d5a4176f794.tar.gz gnupg-588f353db1459c557603886964095d5a4176f794.zip |
Replace gnupg_spawn_process_detached for POSIX.
Signed-off-by: NIIBE Yutaka <[email protected]>
-rw-r--r-- | g13/be-encfs.c | 6 | ||||
-rw-r--r-- | scd/app.c | 20 |
2 files changed, 20 insertions, 6 deletions
diff --git a/g13/be-encfs.c b/g13/be-encfs.c index 25725daa2..9adb1e092 100644 --- a/g13/be-encfs.c +++ b/g13/be-encfs.c @@ -81,7 +81,11 @@ run_umount_helper (const char *mountpoint) args[1] = mountpoint; args[2] = NULL; - err = gnupg_spawn_process_detached (pgmname, args, NULL); + err = gnupg_process_spawn (pgmname, args, + (GNUPG_PROCESS_DETACHED | GNUPG_PROCESS_STDIN_NULL + | GNUPG_PROCESS_STDOUT_NULL + | GNUPG_PROCESS_STDERR_NULL), + NULL, NULL, NULL); if (err) log_error ("failed to run '%s': %s\n", pgmname, gpg_strerror (err)); @@ -2316,6 +2316,14 @@ app_check_pin (card_t card, ctrl_t ctrl, const char *keyidstr, static void +setup_env (struct spawn_cb_arg *sca) +{ + char *v = sca->arg; + + putenv (v); +} + +static void report_change (int slot, int old_status, int cur_status) { char *homestr, *envstr; @@ -2342,12 +2350,9 @@ report_change (int slot, int old_status, int cur_status) else { gpg_error_t err; - const char *args[9], *envs[2]; + const char *args[9]; char numbuf1[30], numbuf2[30], numbuf3[30]; - envs[0] = envstr; - envs[1] = NULL; - sprintf (numbuf1, "%d", slot); sprintf (numbuf2, "0x%04X", old_status); sprintf (numbuf3, "0x%04X", cur_status); @@ -2364,7 +2369,12 @@ report_change (int slot, int old_status, int cur_status) args[8] = NULL; fname = make_filename (gnupg_homedir (), "scd-event", NULL); - err = gnupg_spawn_process_detached (fname, args, envs); + err = gnupg_process_spawn (fname, args, + (GNUPG_PROCESS_DETACHED + | GNUPG_PROCESS_STDIN_NULL + | GNUPG_PROCESS_STDOUT_NULL + | GNUPG_PROCESS_STDERR_NULL), + setup_env, envstr, NULL); if (err && gpg_err_code (err) != GPG_ERR_ENOENT) log_error ("failed to run event handler '%s': %s\n", fname, gpg_strerror (err)); |