From e583cf17b10dcf20c83cfb89682b24bba0a1dbf9 Mon Sep 17 00:00:00 2001 From: Moritz Luedecke Date: Wed, 24 Jan 2018 18:13:57 +0100 Subject: [PATCH] Set pinentry->result --- pinentry-dmenu.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/pinentry-dmenu.c b/pinentry-dmenu.c index f17c13d..1e41f68 100644 --- a/pinentry-dmenu.c +++ b/pinentry-dmenu.c @@ -583,7 +583,7 @@ catchsig(int sig) { } } -static int +static void password(void) { winmode = WinPin; @@ -600,27 +600,26 @@ password(void) { return 0; } - pinentry->repeat_okay = 1; + if (pinentry->canceled) { + pinentry->result = -1; + return; } - return (pinentry->canceled) ? -1 : 1; + pinentry->result = strlen(pinentry->pin); } -static int +static void confirm(void) { winmode = WinConfirm; sel = Nothing; - run(); - - return sel != No; + pinentry->result = sel != No; } static int cmdhandler(pinentry_t received_pinentry) { struct sigaction sa; XWindowAttributes wa; - int ret; pinentry = received_pinentry; @@ -655,14 +654,14 @@ cmdhandler(pinentry_t received_pinentry) { setup(); if (pinentry->pin) { - ret = password(); + password(); } else { - ret = confirm(); + confirm(); } cleanup(); - return ret; + return pinentry->result; } pinentry_cmd_handler_t pinentry_cmd_handler = cmdhandler;