diff options
author | NIIBE Yutaka <[email protected]> | 2019-08-06 20:38:30 +0000 |
---|---|---|
committer | NIIBE Yutaka <[email protected]> | 2019-08-06 20:38:30 +0000 |
commit | bb82ad018a7bf93bd704cf44e51cd086e41a4ad5 (patch) | |
tree | 8d75248205542d04e6366e8a8f1de2783aef2763 /agent/call-pinentry.c | |
parent | common: Fix line break handling, finding a space. (diff) | |
download | gnupg-bb82ad018a7bf93bd704cf44e51cd086e41a4ad5.tar.gz gnupg-bb82ad018a7bf93bd704cf44e51cd086e41a4ad5.zip |
agent: Fix an error path of agent_get_confirmation.
* agent/call-pinentry.c (agent_get_confirmation): Make sure
unlock_pinentry is always called.
Signed-off-by: NIIBE Yutaka <[email protected]>
Diffstat (limited to 'agent/call-pinentry.c')
-rw-r--r-- | agent/call-pinentry.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/agent/call-pinentry.c b/agent/call-pinentry.c index a895a8b8f..34eb77cfb 100644 --- a/agent/call-pinentry.c +++ b/agent/call-pinentry.c @@ -1481,15 +1481,16 @@ agent_get_confirmation (ctrl_t ctrl, npth_t thread; rc = watch_sock_start (&sock_watched, &thread); - if (rc) - return rc; - - rc = assuan_transact (entry_ctx, "CONFIRM", - NULL, NULL, NULL, NULL, NULL, NULL); - if (rc && gpg_err_source (rc) && gpg_err_code (rc) == GPG_ERR_ASS_CANCELED) - rc = gpg_err_make (gpg_err_source (rc), GPG_ERR_CANCELED); + if (!rc) + { + rc = assuan_transact (entry_ctx, "CONFIRM", + NULL, NULL, NULL, NULL, NULL, NULL); + if (rc && gpg_err_source (rc) + && gpg_err_code (rc) == GPG_ERR_ASS_CANCELED) + rc = gpg_err_make (gpg_err_source (rc), GPG_ERR_CANCELED); - watch_sock_end (&sock_watched, &thread); + watch_sock_end (&sock_watched, &thread); + } return unlock_pinentry (ctrl, rc); } |