From 0a6af6dc12998ef7b19673ad05d11e82f826de9d Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Mon, 13 Jul 2020 14:30:14 +0200 Subject: [PATCH] agent: Fix regression with --newsymkey in loopback mode. * agent/command.c (cmd_get_passphrase): Never repeat in loopback mode; same as with !OPT_NEWSYMKEY. -- In loopback mode there shall not be any repeat because the caller is expected to do any confirmation before passing a new passphrase to gpg. Fixes-commit: eace4bbe1ded8b01f9ad52ebc1871f2fd13c3a08 GnuPG-bug-id: 4991 Signed-off-by: Werner Koch --- agent/command.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/agent/command.c b/agent/command.c index f54762b44..2980ae2da 100644 --- a/agent/command.c +++ b/agent/command.c @@ -1738,11 +1738,14 @@ cmd_get_passphrase (assuan_context_t ctx, char *line) pi2->failed_tries = 0; continue; } - if (*pi->pin && !pi->repeat_okay) + if (*pi->pin && !pi->repeat_okay + && ctrl->pinentry_mode != PINENTRY_MODE_LOOPBACK) { /* The passphrase is empty and the pinentry did not * already run the repetition check, do it here. This - * is only called when using an old and simple pinentry. */ + * is only called when using an old and simple pinentry. + * It is neither called in loopback mode because the + * caller does any passphrase repetition by herself. */ xfree (response); response = NULL; rc = agent_get_passphrase (ctrl, &response,