summaryrefslogtreecommitdiffstats
path: root/sm
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>2024-02-27 10:35:46 +0100
committerWerner Koch <wk@gnupg.org>2024-02-27 10:36:22 +0100
commit962058f704867082d6d00f6467a79c78e41169ca (patch)
tree4cdb21422cdd037add8db508644ac39483cc8264 /sm
parentagent: Allow GET_PASSPHRASE in restricted mode. (diff)
downloadgnupg2-962058f704867082d6d00f6467a79c78e41169ca.tar.xz
gnupg2-962058f704867082d6d00f6467a79c78e41169ca.zip
Allow tilde expansion for the foo-program options.
* agent/gpg-agent.c (parse_rereadable_options): Use make_filename_try for opt.pinentry_program. Change definition accordingly. * g10/gpg.c (main): Use make_filename for agent_program, dirmngr_program, and keyboxd_program. Change definition accordingly. * sm/gpgsm.c (main): Ditto. * tools/gpg-card.c (parse_arguments): Ditto. * tools/gpg-connect-agent.c (main): Ditto. * tools/gpg-wks-client.c (parse_arguments): Likewise. Do it also for option --output. (process_confirmation_request): Print a note for a successful sent. -- GnuPG-bug-id: 7017
Diffstat (limited to 'sm')
-rw-r--r--sm/gpgsm.c16
-rw-r--r--sm/gpgsm.h6
2 files changed, 16 insertions, 6 deletions
diff --git a/sm/gpgsm.c b/sm/gpgsm.c
index b3d48abce..3948372e4 100644
--- a/sm/gpgsm.c
+++ b/sm/gpgsm.c
@@ -1335,8 +1335,19 @@ main ( int argc, char **argv)
case oHomedir: gnupg_set_homedir (pargs.r.ret_str); break;
case oChUid: break; /* Command line only (see above). */
- case oAgentProgram: opt.agent_program = pargs.r.ret_str; break;
- case oKeyboxdProgram: opt.keyboxd_program = pargs.r.ret_str; break;
+
+ case oAgentProgram:
+ xfree (opt.agent_program);
+ opt.agent_program = make_filename (pargs.r.ret_str, NULL);
+ break;
+ case oKeyboxdProgram:
+ xfree (opt.keyboxd_program);
+ opt.keyboxd_program = make_filename (pargs.r.ret_str, NULL);
+ break;
+ case oDirmngrProgram:
+ xfree (opt.dirmngr_program);
+ opt.dirmngr_program = make_filename (pargs.r.ret_str, NULL);
+ break;
case oDisplay:
set_opt_session_env ("DISPLAY", pargs.r.ret_str);
@@ -1354,7 +1365,6 @@ main ( int argc, char **argv)
case oLCctype: opt.lc_ctype = xstrdup (pargs.r.ret_str); break;
case oLCmessages: opt.lc_messages = xstrdup (pargs.r.ret_str); break;
- case oDirmngrProgram: opt.dirmngr_program = pargs.r.ret_str; break;
case oDisableDirmngr: opt.disable_dirmngr = 1; break;
case oPreferSystemDirmngr: /* Obsolete */; break;
case oProtectToolProgram:
diff --git a/sm/gpgsm.h b/sm/gpgsm.h
index 684251fda..faa03a9f4 100644
--- a/sm/gpgsm.h
+++ b/sm/gpgsm.h
@@ -60,16 +60,16 @@ struct
int use_keyboxd; /* Use the external keyboxd as storage backend. */
const char *config_filename; /* Name of the used config file. */
- const char *agent_program;
+ char *agent_program;
- const char *keyboxd_program;
+ char *keyboxd_program;
session_env_t session_env;
char *lc_ctype;
char *lc_messages;
int autostart;
- const char *dirmngr_program;
+ char *dirmngr_program;
int disable_dirmngr; /* Do not do any dirmngr calls. */
const char *protect_tool_program;
char *outfile; /* name of output file */