From 049b8001f163ebae1a44056989f06f489c59349d Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Thu, 15 Jun 2023 16:02:28 +0200 Subject: Flush data before clearing the confidential flag. * src/context.c (assuan_end_confidential): Flush data. -- This is required so that for example gpg-agent won't reveal a password in a log file if requested via get_passphrase --data X X X X (Note that --data is required in any case because the default of returing it with the OK line can't be secured). --- src/context.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/context.c b/src/context.c index e41b60b..78b4eb5 100644 --- a/src/context.c +++ b/src/context.c @@ -149,10 +149,12 @@ assuan_begin_confidential (assuan_context_t ctx) } -/* Same as assuan_set_flag (ctx, ASSUAN_CONFIDENTIAL, 0). */ +/* Same as assuan_set_flag (ctx, ASSUAN_CONFIDENTIAL, 0) but first + * flushes pending data. */ void assuan_end_confidential (assuan_context_t ctx) { + _assuan_cookie_write_flush (ctx); assuan_set_flag (ctx, ASSUAN_CONFIDENTIAL, 0); } -- cgit v1.2.3