1
0
mirror of git://git.gnupg.org/gnupg.git synced 2024-12-22 10:19:57 +01:00

gpgconf: Before --launch check that the config file is fine.

* tools/gpgconf-comp.c (gc_component_launch): Check the conf file.
* tools/gpgconf.c (gpgconf_failure): Call log_flush.
--
GnuPG-bug-id: 4497
Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
Werner Koch 2019-05-16 12:24:08 +02:00
parent 79c99921e3
commit 50c2f76ae6
No known key found for this signature in database
GPG Key ID: E3FDFF218E45B72B
2 changed files with 15 additions and 4 deletions

View File

@ -1273,8 +1273,17 @@ gc_component_launch (int component)
if (!(component == GC_COMPONENT_GPG_AGENT if (!(component == GC_COMPONENT_GPG_AGENT
|| component == GC_COMPONENT_DIRMNGR)) || component == GC_COMPONENT_DIRMNGR))
{ {
es_fputs (_("Component not suitable for launching"), es_stderr); log_error ("%s\n", _("Component not suitable for launching"));
es_putc ('\n', es_stderr); gpgconf_failure (0);
}
if (gc_component_check_options (component, NULL, NULL))
{
log_error (_("Configuration file of component %s is broken\n"),
gc_component[component].name);
if (!opt.quiet)
log_info (_("Note: Use the command \"%s%s\" to get details.\n"),
"gpgconf --check-options ", gc_component[component].name);
gpgconf_failure (0); gpgconf_failure (0);
} }
@ -1685,8 +1694,9 @@ collect_error_output (estream_t fp, const char *tag)
} }
/* Check the options of a single component. Returns 0 if everything /* Check the options of a single component. If CONF_FILE is NULL the
is OK. */ * standard config file is used. If OUT is not NULL the output is
* written to that stream. Returns 0 if everything is OK. */
int int
gc_component_check_options (int component, estream_t out, const char *conf_file) gc_component_check_options (int component, estream_t out, const char *conf_file)
{ {

View File

@ -900,6 +900,7 @@ main (int argc, char **argv)
void void
gpgconf_failure (gpg_error_t err) gpgconf_failure (gpg_error_t err)
{ {
log_flush ();
if (!err) if (!err)
err = gpg_error (GPG_ERR_GENERAL); err = gpg_error (GPG_ERR_GENERAL);
gpgconf_write_status gpgconf_write_status