aboutsummaryrefslogtreecommitdiffstats
path: root/agent/gpg-agent.c
diff options
context:
space:
mode:
Diffstat (limited to 'agent/gpg-agent.c')
-rw-r--r--agent/gpg-agent.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/agent/gpg-agent.c b/agent/gpg-agent.c
index 5599dfd1f..0443377e8 100644
--- a/agent/gpg-agent.c
+++ b/agent/gpg-agent.c
@@ -2016,11 +2016,17 @@ static void
reread_configuration (void)
{
gpgrt_argparse_t pargs;
+ char *twopart;
int dummy;
if (!config_filename)
return; /* No config file. */
+ twopart = strconcat (GPG_AGENT_NAME EXTSEP_S "conf" PATHSEP_S,
+ config_filename, NULL);
+ if (!twopart)
+ return; /* Out of core. */
+
parse_rereadable_options (NULL, 1); /* Start from the default values. */
memset (&pargs, 0, sizeof pargs);
@@ -2029,7 +2035,7 @@ reread_configuration (void)
pargs.flags = (ARGPARSE_FLAG_KEEP
|ARGPARSE_FLAG_SYS
|ARGPARSE_FLAG_USER);
- while (gpgrt_argparser (&pargs, opts, GPG_AGENT_NAME EXTSEP_S "conf") )
+ while (gpgrt_argparser (&pargs, opts, twopart) )
{
if (pargs.r_opt == ARGPARSE_CONFFILE)
{
@@ -2042,7 +2048,7 @@ reread_configuration (void)
parse_rereadable_options (&pargs, 1);
}
gpgrt_argparse (NULL, &pargs, NULL); /* Release internal state. */
-
+ xfree (twopart);
finalize_rereadable_options ();
set_debug ();
}