UI_UTIL_read_pw() misinterpreted the values returned from UI functions.
PR: 456
diff --git a/crypto/ui/ui_util.c b/crypto/ui/ui_util.c
index ee9730d..46bc8c1 100644
--- a/crypto/ui/ui_util.c
+++ b/crypto/ui/ui_util.c
@@ -78,12 +78,14 @@
 	if (ui)
 		{
 		ok = UI_add_input_string(ui,prompt,0,buf,0,size-1);
-		if (ok == 0 && verify)
+		if (ok >= 0 && verify)
 			ok = UI_add_verify_string(ui,prompt,0,buff,0,size-1,
 				buf);
-		if (ok == 0)
+		if (ok >= 0)
 			ok=UI_process(ui);
 		UI_free(ui);
 		}
+	if (ok > 0)
+		ok = 0;
 	return(ok);
 	}