From: Werner Koch Date: Thu, 16 May 2019 10:24:08 +0000 (+0200) Subject: gpgconf: Before --launch check that the config file is fine. X-Git-Tag: archive/raspbian/2.2.12-1+rpi1+deb10u2^2~33 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=858c3dbb325b4876553635d9ed5cbdee626823d3;p=gnupg2.git 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 (cherry picked from commit 3a28706cfd960ff84dda9a22aa2f160b4c2efbb5) Gbp-Pq: Topic from-2.2.16 Gbp-Pq: Name gpgconf-Before-launch-check-that-the-config-file-is-fine.patch --- diff --git a/tools/gpgconf-comp.c b/tools/gpgconf-comp.c index adecfde..7f7440b 100644 --- a/tools/gpgconf-comp.c +++ b/tools/gpgconf-comp.c @@ -1297,8 +1297,17 @@ gc_component_launch (int component) if (!(component == GC_COMPONENT_GPG_AGENT || component == GC_COMPONENT_DIRMNGR)) { - es_fputs (_("Component not suitable for launching"), es_stderr); - es_putc ('\n', es_stderr); + log_error ("%s\n", _("Component not suitable for launching")); + 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); } @@ -1709,8 +1718,9 @@ collect_error_output (estream_t fp, const char *tag) } -/* Check the options of a single component. Returns 0 if everything - is OK. */ +/* Check the options of a single component. If CONF_FILE is NULL the + * standard config file is used. If OUT is not NULL the output is + * written to that stream. Returns 0 if everything is OK. */ int gc_component_check_options (int component, estream_t out, const char *conf_file) { diff --git a/tools/gpgconf.c b/tools/gpgconf.c index 59085d8..bca6efb 100644 --- a/tools/gpgconf.c +++ b/tools/gpgconf.c @@ -881,6 +881,7 @@ main (int argc, char **argv) void gpgconf_failure (gpg_error_t err) { + log_flush (); if (!err) err = gpg_error (GPG_ERR_GENERAL); gpgconf_write_status