From 4cc534020669fa038f6a2107a55fe3b42fc065dc Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Wed, 11 Aug 2021 11:38:37 +0200 Subject: [PATCH] gpgconf,w32: Print more registry diagnostics with --list-dirs. * tools/gpgconf.c (list_dirs): Figure out classes with the key. Signed-off-by: Werner Koch --- tools/gpgconf.c | 40 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 37 insertions(+), 3 deletions(-) diff --git a/tools/gpgconf.c b/tools/gpgconf.c index 63c305483..b4ffa1ab8 100644 --- a/tools/gpgconf.c +++ b/tools/gpgconf.c @@ -299,11 +299,45 @@ list_dirs (estream_t fp, char **names) "HomeDir"); if (tmp) { - es_fflush (fp); - log_info ("Warning: homedir taken from registry key (%s %s)\n", - GNUPG_REGISTRY_DIR, "HomeDir"); + int hkcu = 0; + int hklm = 0; + xfree (tmp); + if ((tmp = read_w32_registry_string ("HKEY_CURRENT_USER", + GNUPG_REGISTRY_DIR, + "HomeDir"))) + { + xfree (tmp); + hkcu = 1; + } + if ((tmp = read_w32_registry_string ("HKEY_LOCAL_MACHINE", + GNUPG_REGISTRY_DIR, + "HomeDir"))) + { + xfree (tmp); + hklm = 1; + } + + es_fflush (fp); + log_info ("Warning: homedir taken from registry key (%s:%s) in%s%s\n", + GNUPG_REGISTRY_DIR, "HomeDir", + hkcu?" HKCU":"", + hklm?" HKLM":""); + + + } + else if ((tmp = read_w32_registry_string (NULL, + GNUPG_REGISTRY_DIR, + NULL))) + { + xfree (tmp); + es_fflush (fp); + log_info ("Warning: registry key (%s) without value in HKCU or HKLM\n", + GNUPG_REGISTRY_DIR); + } + + #endif /*HAVE_W32_SYSTEM*/ }