fix a problem with the curses widget and non-UTF8 locales: keys which used less bytes in the system encoding than in the UTF8 passed to the caller caused that the passphrase got truncated because only the input length was accounted for bump PKGREVISIONdiff -r1.24 -r1.25 pkgsrc/security/pinentry/Makefile
(drochner)
@@ -1,7 +1,8 @@
-# $NetBSD: Makefile,v 1.24 2010/02/08 11:44:39 drochner Exp $
+# $NetBSD: Makefile,v 1.25 2010/02/22 17:19:09 drochner Exp $
#
DISTNAME= pinentry-0.7.6
+PKGREVISION= 1
CATEGORIES= security
MASTER_SITES= ftp://ftp.gnupg.org/gcrypt/pinentry/
@@ -1,5 +1,6 @@
-$NetBSD: distinfo,v 1.5 2009/12/15 19:50:47 drochner Exp $
+$NetBSD: distinfo,v 1.6 2010/02/22 17:19:09 drochner Exp $
SHA1 (pinentry-0.7.6.tar.gz) = 0c525ce81e5589bc9a4f2eb72705bed2b3e9a8b9
RMD160 (pinentry-0.7.6.tar.gz) = 6e69eee88b5cbb919ced79971cd4794f5e659023
Size (pinentry-0.7.6.tar.gz) = 475101 bytes
+SHA1 (patch-aa) = cd30ad4f3a3737687dc5786ebd861ef3b17c600e
$NetBSD: patch-aa,v 1.3 2010/02/22 17:19:09 drochner Exp $
--- pinentry/pinentry-curses.c.orig 2009-04-16 15:06:53.000000000 +0000
+++ pinentry/pinentry-curses.c
@@ -819,8 +819,10 @@ dialog_run (pinentry_t pinentry, const c
if (pin_utf8)
{
pinentry_setbufferlen (pinentry, strlen (pin_utf8) + 1);
- if (pinentry->pin)
+ if (pinentry->pin) {
strcpy (pinentry->pin, pin_utf8);
+ diag.pin_len = strlen (pin_utf8);
+ }
secmem_free (pin_utf8);
pinentry->locale_err = 0;
}