From e5066f2d1c26124359da64fdc46360090910864c Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Wed, 15 Mar 2023 12:05:45 +0100 Subject: [PATCH] gpgtar: Do not allow the use of stdout for --status-fd * tools/gpgtar.c (main): Don't allow logging via the Registry. Forbid using stdout for status-fd in crypt mode. -- Without that check a status output would be mixed up with the input to the internal call of gpg. Using the Registry key to enable logging is very annoying. --- tools/gpgtar.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tools/gpgtar.c b/tools/gpgtar.c index cfd760499..64e5306b2 100644 --- a/tools/gpgtar.c +++ b/tools/gpgtar.c @@ -459,7 +459,7 @@ main (int argc, char **argv) gnupg_reopen_std (GPGTAR_NAME); gpgrt_set_strusage (my_strusage); - log_set_prefix (GPGTAR_NAME, GPGRT_LOG_WITH_PREFIX); + log_set_prefix (GPGTAR_NAME, GPGRT_LOG_WITH_PREFIX|GPGRT_LOG_NO_REGISTRY); /* Make sure that our subsystems are ready. */ i18n_init(); @@ -501,7 +501,11 @@ main (int argc, char **argv) log_fatal ("status-fd is invalid: %s\n", strerror (errno)); if (fd == 1) - opt.status_stream = es_stdout; + { + opt.status_stream = es_stdout; + if (!skip_crypto) + log_fatal ("using stdout for the status-fd is not possible\n"); + } else if (fd == 2) opt.status_stream = es_stderr; else