Hello community,

here is the log from the commit of package pinentry for openSUSE:Factory 
checked in at 2015-06-12 20:29:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/pinentry (Old)
 and      /work/SRC/openSUSE:Factory/.pinentry.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "pinentry"

Changes:
--------
--- /work/SRC/openSUSE:Factory/pinentry/pinentry.changes        2015-06-08 
08:28:44.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.pinentry.new/pinentry.changes   2015-06-12 
20:29:47.000000000 +0200
@@ -1,0 +2,12 @@
+Thu Jun 11 14:49:54 UTC 2015 - lnus...@suse.de
+
+- build gui version with libsecret and text mode versions without to
+  avoid pulling in dbus-x11 on minimal installs (bnc#934214)
+
+-------------------------------------------------------------------
+Wed Jun 10 21:14:04 UTC 2015 - astie...@suse.com
+
+- pinentry 0.9.4:
+  * Fix regression in GTK+ and curses pinentries [boo#934207]
+
+-------------------------------------------------------------------

Old:
----
  pinentry-0.9.3.tar.bz2
  pinentry-0.9.3.tar.bz2.sig

New:
----
  pinentry-0.9.4.tar.bz2
  pinentry-0.9.4.tar.bz2.sig

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ pinentry.spec ++++++
--- /var/tmp/diff_new_pack.QZr8RB/_old  2015-06-12 20:29:48.000000000 +0200
+++ /var/tmp/diff_new_pack.QZr8RB/_new  2015-06-12 20:29:48.000000000 +0200
@@ -18,7 +18,7 @@
 
 %global         ncursesw_config %(set -- %{_bindir}/ncursesw*-config; echo 
${1})
 Name:           pinentry
-Version:        0.9.3
+Version:        0.9.4
 Release:        0
 Summary:        Collection of Simple PIN or Passphrase Entry Dialogs
 License:        GPL-2.0+
@@ -96,18 +96,37 @@
 moc qt4/pinentryconfirm.h > qt4/pinentryconfirm.moc
 export CFLAGS="%{optflags} $(%{ncursesw_config} --cflags)"
 export CXXFLAGS="%{optflags} -std=gnu++11 $(%{ncursesw_config} --cflags)"
+%define _configure ../configure
+# build gui version with libsecret (bnc#934214)
+mkdir gui
+cd gui
 %configure \
-       --enable-pinentry-curses \
+       --disable-pinentry-curses \
+       --disable-pinentry-tty \
+       --enable-libsecret \
        --enable-pinentry-qt4 \
        --enable-pinentry-qt4-clipboard \
        --enable-pinentry-gtk2 \
        --enable-pinentry-gnome3 \
-       --enable-pinentry-tty \
-       --enable-libsecret \
        --without-ncurses-include-dir
 make %{?_smp_mflags}
+# build text version without libsecret (bnc#934214)
+cd ..
+mkdir tui
+cd tui
+%configure \
+       --enable-pinentry-curses \
+       --enable-pinentry-tty \
+       --disable-libsecret \
+       --disable-pinentry-qt4 \
+       --disable-pinentry-gtk2 \
+       --disable-pinentry-gnome3 \
+       --without-ncurses-include-dir
 
 %install
+cd tui
+make DESTDIR=%{buildroot} install %{?_smp_mflags}
+cd ../gui
 make DESTDIR=%{buildroot} install %{?_smp_mflags}
 
 # remove symlink

++++++ pinentry-0.9.3.tar.bz2 -> pinentry-0.9.4.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pinentry-0.9.3/ChangeLog new/pinentry-0.9.4/ChangeLog
--- old/pinentry-0.9.3/ChangeLog        2015-06-01 18:26:22.000000000 +0200
+++ new/pinentry-0.9.4/ChangeLog        2015-06-05 20:44:10.000000000 +0200
@@ -1,3 +1,32 @@
+2015-06-05  Werner Koch  <w...@gnupg.org>
+
+       Release 0.9.4.
+
+2015-06-05  Neal H. Walfield  <n...@gnu.org>
+
+       secmem: When clearing memory, don't clear beyond the end of the buffer.
+       * secmem/secmem.c (secmem_malloc): Only clear the user memory; don't
+       clear beyond the end of the buffer.
+
+2015-06-04  Daniel Kahn Gillmor  <d...@fifthhorseman.net>
+
+       Make pinentry_setbufferlen always return the pin buffer.
+       * pinentry/pinentry.c (pinentry_setbufferlen): When the pin buffer is
+       already large enough, return the buffer instead of NULL.
+
+2015-06-02  Werner Koch  <w...@gnupg.org>
+
+       Fixed compiler warnings - mostly unused parameter.
+
+       Add more GCC warnings flags.
+       * configure.ac: Add GCC specific -W flags.
+
+2015-06-02  Daniel Kahn Gillmor  <d...@fifthhorseman.net>
+
+       use g_debug(format, ...) safely.
+       * pinentry/password-cache.c (password_cache_clear): use g_debug safely
+         in case error->message is malformed.
+
 2015-06-01  Werner Koch  <w...@gnupg.org>
 
        Release 0.9.3.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pinentry-0.9.3/NEWS new/pinentry-0.9.4/NEWS
--- old/pinentry-0.9.3/NEWS     2015-06-01 18:13:08.000000000 +0200
+++ new/pinentry-0.9.4/NEWS     2015-06-05 20:40:06.000000000 +0200
@@ -1,3 +1,9 @@
+Noteworthy changes in version 0.9.4 (2015-06-05)
+------------------------------------------------
+
+ * Fix regression in GTK+ and curses pinentries.
+
+
 Noteworthy changes in version 0.9.3 (2015-06-01)
 ------------------------------------------------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pinentry-0.9.3/VERSION new/pinentry-0.9.4/VERSION
--- old/pinentry-0.9.3/VERSION  2015-06-01 18:26:22.000000000 +0200
+++ new/pinentry-0.9.4/VERSION  2015-06-05 20:44:10.000000000 +0200
@@ -1 +1 @@
-0.9.3
+0.9.4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pinentry-0.9.3/assuan/assuan-handler.c 
new/pinentry-0.9.4/assuan/assuan-handler.c
--- old/pinentry-0.9.3/assuan/assuan-handler.c  2013-03-21 09:43:50.000000000 
+0100
+++ new/pinentry-0.9.4/assuan/assuan-handler.c  2015-06-02 11:29:57.000000000 
+0200
@@ -1,4 +1,4 @@
-/* assuan-handler.c - dispatch commands 
+/* assuan-handler.c - dispatch commands
  *     Copyright (C) 2001 Free Software Foundation, Inc.
  *
  * This file is part of GnuPG.
@@ -32,6 +32,7 @@
 static int
 dummy_handler (ASSUAN_CONTEXT ctx, char *line)
 {
+  (void)line;
   return set_error (ctx, Server_Fault, "no handler registered");
 }
 
@@ -39,15 +40,18 @@
 static int
 std_handler_nop (ASSUAN_CONTEXT ctx, char *line)
 {
+  (void)ctx;
+  (void)line;
   return 0; /* okay */
 }
-  
+
 static int
 std_handler_cancel (ASSUAN_CONTEXT ctx, char *line)
 {
+  (void)line;
   if (ctx->cancel_notify_fnc)
     ctx->cancel_notify_fnc (ctx);
-  return set_error (ctx, Not_Implemented, NULL); 
+  return set_error (ctx, Not_Implemented, NULL);
 }
 
 static int
@@ -96,37 +100,41 @@
     return ctx->option_handler_fnc (ctx, key, value);
   return 0;
 }
-  
+
 static int
 std_handler_bye (ASSUAN_CONTEXT ctx, char *line)
 {
+  (void)line;
   if (ctx->bye_notify_fnc)
     ctx->bye_notify_fnc (ctx);
   assuan_close_input_fd (ctx);
   assuan_close_output_fd (ctx);
   return -1; /* pretty simple :-) */
 }
-  
+
 static int
 std_handler_auth (ASSUAN_CONTEXT ctx, char *line)
 {
-  return set_error (ctx, Not_Implemented, NULL); 
+  (void)line;
+  return set_error (ctx, Not_Implemented, NULL);
 }
-  
+
 static int
 std_handler_reset (ASSUAN_CONTEXT ctx, char *line)
 {
+  (void)line;
   if (ctx->reset_notify_fnc)
     ctx->reset_notify_fnc (ctx);
   assuan_close_input_fd (ctx);
   assuan_close_output_fd (ctx);
   return 0;
 }
-  
+
 static int
 std_handler_end (ASSUAN_CONTEXT ctx, char *line)
 {
-  return set_error (ctx, Not_Implemented, NULL); 
+  (void)line;
+  return set_error (ctx, Not_Implemented, NULL);
 }
 
 static int
@@ -182,7 +190,7 @@
 
 
 
-  
+
 
 /* This is a table with the standard commands and handler for them.
    The table is used to initialize a new context and assuciate strings
@@ -214,13 +222,13 @@
  * @cmd_id: An ID value for the command
  * @cmd_name: A string with the command name
  * @handler: The handler function to be called
- * 
+ *
  * Register a handler to be used for a given command.
- * 
+ *
  * The @cmd_name must be %NULL or an empty string for all @cmd_ids
  * below %ASSUAN_CMD_USER because predefined values are used.
- * 
- * Return value: 
+ *
+ * Return value:
  **/
 int
 assuan_register_command (ASSUAN_CONTEXT ctx,
@@ -233,7 +241,7 @@
     cmd_name = NULL;
 
   if (cmd_id < ASSUAN_CMD_USER)
-    { 
+    {
       if (cmd_name)
         return ASSUAN_Invalid_Value; /* must be NULL for these values*/
 
@@ -250,7 +258,7 @@
       if (!std_cmd_table[i].name)
         return ASSUAN_Invalid_Value; /* not a pre-registered one */
     }
-  
+
   if (!handler)
     handler = dummy_handler;
 
@@ -359,7 +367,7 @@
           if (rc)
             return rc;
         }
-    } 
+    }
   return 0;
 }
 
@@ -370,6 +378,8 @@
 static int
 handle_data_line (ASSUAN_CONTEXT ctx, char *line, int linelen)
 {
+  (void)line;
+  (void)linelen;
   return set_error (ctx, Not_Implemented, NULL);
 }
 
@@ -391,7 +401,7 @@
 /* Parse the line, break out the command, find it in the command
    table, remove leading and white spaces from the arguments, all the
    handler with the argument line and return the error */
-static int 
+static int
 dispatch_command (ASSUAN_CONTEXT ctx, char *line, int linelen)
 {
   char *p;
@@ -404,8 +414,8 @@
   for (p=line; *p && *p != ' ' && *p != '\t'; p++)
     ;
   if (p==line)
-    return set_error (ctx, Syntax_Error, "leading white-space"); 
-  if (*p) 
+    return set_error (ctx, Syntax_Error, "leading white-space");
+  if (*p)
     { /* Skip over leading WS after the keyword */
       *p++ = 0;
       while ( *p == ' ' || *p == '\t')
@@ -476,11 +486,11 @@
       rc = assuan_write_line (ctx, ctx->okay_line? ctx->okay_line : "OK");
     }
   else if (rc == -1)
-    { /* No error checking because the peer may have already disconnect */ 
+    { /* No error checking because the peer may have already disconnect */
       assuan_write_line (ctx, "OK closing connection");
       ctx->finish_handler (ctx);
     }
-  else 
+  else
     {
       char errline[256];
 
@@ -509,11 +519,11 @@
 /**
  * assuan_process:
  * @ctx: assuan context
- * 
+ *
  * This fucntion is used to handle the assuan protocol after a
  * connection has been established using assuan_accept().  This is the
  * main protocol handler.
- * 
+ *
  * Return value: 0 on success or an error code if the assuan operation
  * failed.  Note, that no error is returned for operational errors.
  **/
@@ -536,15 +546,15 @@
 /**
  * assuan_process_next:
  * @ctx: Assuan context
- * 
+ *
  * Same as assuan_process() but the user has to provide the outer
  * loop.  He should loop as long as the return code is zero and stop
  * otherwise; -1 is regular end.
- * 
+ *
  * See also: assuan_get_active_fds()
  * Return value: -1 for end of server, 0 on success or an error code
  **/
-int 
+int
 assuan_process_next (ASSUAN_CONTEXT ctx)
 {
   return process_request (ctx);
@@ -557,18 +567,18 @@
  * @what: 0 for read fds, 1 for write fds
  * @fdarray: Caller supplied array to store the FDs
  * @fdarraysize: size of that array
- * 
+ *
  * Return all active filedescriptors for the given context.  This
  * function can be used to select on the fds and call
  * assuan_process_next() if there is an active one.  The first fd in
  * the array is the one used for the command connection.
  *
  * Note, that write FDs are not yet supported.
- * 
+ *
  * Return value: number of FDs active and put into @fdarray or -1 on
  * error which is most likely a too small fdarray.
  **/
-int 
+int
 assuan_get_active_fds (ASSUAN_CONTEXT ctx, int what,
                        int *fdarray, int fdarraysize)
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pinentry-0.9.3/assuan/assuan-pipe-server.c 
new/pinentry-0.9.4/assuan/assuan-pipe-server.c
--- old/pinentry-0.9.3/assuan/assuan-pipe-server.c      2013-03-21 
09:43:50.000000000 +0100
+++ new/pinentry-0.9.4/assuan/assuan-pipe-server.c      2015-06-02 
11:29:56.000000000 +0200
@@ -1,4 +1,4 @@
-/* assuan-pipe-server.c - Assuan server working over a pipe 
+/* assuan-pipe-server.c - Assuan server working over a pipe
  *     Copyright (C) 2001 Free Software Foundation, Inc.
  *
  * This file is part of GnuPG.
@@ -27,12 +27,14 @@
 static void
 deinit_pipe_server (ASSUAN_CONTEXT ctx)
 {
+  (void)ctx;
   /* nothing to do for this simple server */
 }
 
 static int
 accept_connection (ASSUAN_CONTEXT ctx)
 {
+  (void)ctx;
   /* This is a NOP for a pipe server */
   return 0;
 }
@@ -40,6 +42,7 @@
 static int
 finish_connection (ASSUAN_CONTEXT ctx)
 {
+  (void)ctx;
   /* This is a NOP for a pipe server */
   return 0;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pinentry-0.9.3/configure new/pinentry-0.9.4/configure
--- old/pinentry-0.9.3/configure        2015-06-01 18:25:58.000000000 +0200
+++ new/pinentry-0.9.4/configure        2015-06-05 20:43:32.000000000 +0200
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for pinentry 0.9.3.
+# Generated by GNU Autoconf 2.69 for pinentry 0.9.4.
 #
 # Report bugs to <http://bugs.gnupg.org>.
 #
@@ -580,8 +580,8 @@
 # Identity of this package.
 PACKAGE_NAME='pinentry'
 PACKAGE_TARNAME='pinentry'
-PACKAGE_VERSION='0.9.3'
-PACKAGE_STRING='pinentry 0.9.3'
+PACKAGE_VERSION='0.9.4'
+PACKAGE_STRING='pinentry 0.9.4'
 PACKAGE_BUGREPORT='http://bugs.gnupg.org'
 PACKAGE_URL=''
 
@@ -1359,7 +1359,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures pinentry 0.9.3 to adapt to many kinds of systems.
+\`configure' configures pinentry 0.9.4 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1429,7 +1429,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of pinentry 0.9.3:";;
+     short | recursive ) echo "Configuration of pinentry 0.9.4:";;
    esac
   cat <<\_ACEOF
 
@@ -1567,7 +1567,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-pinentry configure 0.9.3
+pinentry configure 0.9.4
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1974,7 +1974,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by pinentry $as_me 0.9.3, which was
+It was created by pinentry $as_me 0.9.4, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2841,7 +2841,7 @@
 
 # Define the identity of the package.
  PACKAGE='pinentry'
- VERSION='0.9.3'
+ VERSION='0.9.4'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -6222,13 +6222,140 @@
 
 
 if test "$GCC" = yes; then
-    CFLAGS="$CFLAGS -Wall -Wcast-align -Wshadow -Wstrict-prototypes"
+    # Check whether gcc does not emit a diagnositc for unknown -Wno-*
+    # options.  This is the case for gcc >= 4.6
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gcc ignores unknown 
-Wno-* options" >&5
+$as_echo_n "checking if gcc ignores unknown -Wno-* options... " >&6; }
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 6 )
+#kickerror
+#endif
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  _gcc_silent_wno=yes
+else
+  _gcc_silent_wno=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_gcc_silent_wno" >&5
+$as_echo "$_gcc_silent_wno" >&6; }
+
+    if test "$USE_MAINTAINER_MODE" = "yes"; then
+        CFLAGS="$CFLAGS -Wall -Wcast-align -Wshadow -Wstrict-prototypes"
+        CFLAGS="$CFLAGS -Wformat -Wno-format-y2k -Wformat-security"
+
+        if test x"$_gcc_silent_wno" = xyes ; then
+          _gcc_warn=yes
+        else
+          { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gcc supports 
-Wno-missing-field-initializers" >&5
+$as_echo_n "checking if gcc supports -Wno-missing-field-initializers... " >&6; 
}
+          _gcc_cflags_save=$CFLAGS
+          CFLAGS="-Wno-missing-field-initializers"
+          cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  _gcc_warn=yes
+else
+  _gcc_warn=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+          { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_gcc_warn" >&5
+$as_echo "$_gcc_warn" >&6; }
+          CFLAGS=$_gcc_cflags_save;
+        fi
+        if test x"$_gcc_warn" = xyes ; then
+          CFLAGS="$CFLAGS -W -Wno-sign-compare -Wno-missing-field-initializers"
+        fi
+
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gcc supports 
-Wdeclaration-after-statement" >&5
+$as_echo_n "checking if gcc supports -Wdeclaration-after-statement... " >&6; }
+        _gcc_cflags_save=$CFLAGS
+        CFLAGS="-Wdeclaration-after-statement"
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  _gcc_warn=yes
+else
+  _gcc_warn=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_gcc_warn" >&5
+$as_echo "$_gcc_warn" >&6; }
+        CFLAGS=$_gcc_cflags_save;
+        if test x"$_gcc_warn" = xyes ; then
+          CFLAGS="$CFLAGS -Wdeclaration-after-statement"
+        fi
+
+    else
+        # Not in maintainer mode: Use standard warnings.
+        CFLAGS="$CFLAGS -Wall"
+    fi
+
     CPPFLAGS="$CPPFLAGS -Wall"
 
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gcc supports 
-Wno-pointer-sign" >&5
+    if test x"$_gcc_silent_wno" = xyes ; then
+      _gcc_warn=yes
+    else
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gcc supports 
-Wno-pointer-sign" >&5
 $as_echo_n "checking if gcc supports -Wno-pointer-sign... " >&6; }
+      _gcc_cflags_save=$CFLAGS
+      CFLAGS="-Wno-pointer-sign"
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  _gcc_warn=yes
+else
+  _gcc_warn=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_gcc_warn" >&5
+$as_echo "$_gcc_warn" >&6; }
+      CFLAGS=$_gcc_cflags_save;
+    fi
+    if test x"$_gcc_warn" = xyes ; then
+       CFLAGS="$CFLAGS -Wno-pointer-sign"
+    fi
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gcc supports 
-Wpointer-arith" >&5
+$as_echo_n "checking if gcc supports -Wpointer-arith... " >&6; }
     _gcc_cflags_save=$CFLAGS
-    CFLAGS="-Wno-pointer-sign"
+    CFLAGS="-Wpointer-arith"
     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -6241,16 +6368,16 @@
 }
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
-  _gcc_psign=yes
+  _gcc_warn=yes
 else
-  _gcc_psign=no
+  _gcc_warn=no
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_gcc_psign" >&5
-$as_echo "$_gcc_psign" >&6; }
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_gcc_warn" >&5
+$as_echo "$_gcc_warn" >&6; }
     CFLAGS=$_gcc_cflags_save;
-    if test x"$_gcc_psign" = xyes ; then
-       CFLAGS="$CFLAGS -Wno-pointer-sign"
+    if test x"$_gcc_warn" = xyes ; then
+       CFLAGS="$CFLAGS -Wpointer-arith"
     fi
 fi
 
@@ -9881,7 +10008,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by pinentry $as_me 0.9.3, which was
+This file was extended by pinentry $as_me 0.9.4, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -9947,7 +10074,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-pinentry config.status 0.9.3
+pinentry config.status 0.9.4
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
@@ -10820,7 +10947,7 @@
 
        Pinentry v${VERSION} has been configured as follows:
 
-       Revision:  9f98bbf  (40856)
+       Revision:  29d7c5f  (10711)
        Platform:  $host
 
        Curses Pinentry ..: $pinentry_curses
@@ -10840,7 +10967,7 @@
 
        Pinentry v${VERSION} has been configured as follows:
 
-       Revision:  9f98bbf  (40856)
+       Revision:  29d7c5f  (10711)
        Platform:  $host
 
        Curses Pinentry ..: $pinentry_curses
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pinentry-0.9.3/configure.ac 
new/pinentry-0.9.4/configure.ac
--- old/pinentry-0.9.3/configure.ac     2015-06-01 17:50:47.000000000 +0200
+++ new/pinentry-0.9.4/configure.ac     2015-06-02 11:21:25.000000000 +0200
@@ -26,7 +26,7 @@
 # (git tag -s pinentry-n.m.k) and run "./autogen.sh --force".  Please
 # bump the version number immediately after the release, do another
 # commit, and a push so that the git magic is able to work.
-m4_define(mym4_version, [0.9.3])
+m4_define(mym4_version, [0.9.4])
 
 # Below is m4 magic to extract and compute the git revision number,
 # the decimalized short revision number, a beta version string and a
@@ -144,17 +144,73 @@
 
 dnl Checks for compiler features.
 if test "$GCC" = yes; then
-    CFLAGS="$CFLAGS -Wall -Wcast-align -Wshadow -Wstrict-prototypes"
+    # Check whether gcc does not emit a diagnositc for unknown -Wno-*
+    # options.  This is the case for gcc >= 4.6
+    AC_MSG_CHECKING([if gcc ignores unknown -Wno-* options])
+    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 6 )
+#kickerror
+#endif]],[])],[_gcc_silent_wno=yes],[_gcc_silent_wno=no])
+    AC_MSG_RESULT($_gcc_silent_wno)
+
+    if test "$USE_MAINTAINER_MODE" = "yes"; then
+        CFLAGS="$CFLAGS -Wall -Wcast-align -Wshadow -Wstrict-prototypes"
+        CFLAGS="$CFLAGS -Wformat -Wno-format-y2k -Wformat-security"
+
+        if test x"$_gcc_silent_wno" = xyes ; then
+          _gcc_warn=yes
+        else
+          AC_MSG_CHECKING([if gcc supports -Wno-missing-field-initializers])
+          _gcc_cflags_save=$CFLAGS
+          CFLAGS="-Wno-missing-field-initializers"
+          AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],
+                            [_gcc_warn=yes],[_gcc_warn=no])
+          AC_MSG_RESULT($_gcc_warn)
+          CFLAGS=$_gcc_cflags_save;
+        fi
+        if test x"$_gcc_warn" = xyes ; then
+          CFLAGS="$CFLAGS -W -Wno-sign-compare -Wno-missing-field-initializers"
+        fi
+
+        AC_MSG_CHECKING([if gcc supports -Wdeclaration-after-statement])
+        _gcc_cflags_save=$CFLAGS
+        CFLAGS="-Wdeclaration-after-statement"
+        AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],_gcc_warn=yes,_gcc_warn=no)
+        AC_MSG_RESULT($_gcc_warn)
+        CFLAGS=$_gcc_cflags_save;
+        if test x"$_gcc_warn" = xyes ; then
+          CFLAGS="$CFLAGS -Wdeclaration-after-statement"
+        fi
+
+    else
+        # Not in maintainer mode: Use standard warnings.
+        CFLAGS="$CFLAGS -Wall"
+    fi
+
     CPPFLAGS="$CPPFLAGS -Wall"
 
-    AC_MSG_CHECKING([if gcc supports -Wno-pointer-sign])
+    if test x"$_gcc_silent_wno" = xyes ; then
+      _gcc_warn=yes
+    else
+      AC_MSG_CHECKING([if gcc supports -Wno-pointer-sign])
+      _gcc_cflags_save=$CFLAGS
+      CFLAGS="-Wno-pointer-sign"
+      
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],[_gcc_warn=yes],[_gcc_warn=no])
+      AC_MSG_RESULT($_gcc_warn)
+      CFLAGS=$_gcc_cflags_save;
+    fi
+    if test x"$_gcc_warn" = xyes ; then
+       CFLAGS="$CFLAGS -Wno-pointer-sign"
+    fi
+
+    AC_MSG_CHECKING([if gcc supports -Wpointer-arith])
     _gcc_cflags_save=$CFLAGS
-    CFLAGS="-Wno-pointer-sign"
-    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],_gcc_psign=yes,_gcc_psign=no)
-    AC_MSG_RESULT($_gcc_psign)
+    CFLAGS="-Wpointer-arith"
+    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],_gcc_warn=yes,_gcc_warn=no)
+    AC_MSG_RESULT($_gcc_warn)
     CFLAGS=$_gcc_cflags_save;
-    if test x"$_gcc_psign" = xyes ; then
-       CFLAGS="$CFLAGS -Wno-pointer-sign"
+    if test x"$_gcc_warn" = xyes ; then
+       CFLAGS="$CFLAGS -Wpointer-arith"
     fi
 fi
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pinentry-0.9.3/doc/pinentry.info 
new/pinentry-0.9.4/doc/pinentry.info
--- old/pinentry-0.9.3/doc/pinentry.info        2015-06-01 18:26:22.000000000 
+0200
+++ new/pinentry-0.9.4/doc/pinentry.info        2015-06-05 20:44:10.000000000 
+0200
@@ -8,8 +8,8 @@
 
 This file documents the use and the internals of the PINENTRY.
 
-   This is edition 0.9.3, last updated 1 June 2015, of 'The 'PINEntry'
-Manual', for version 0.9.3.
+   This is edition 0.9.4, last updated 1 June 2015, of 'The 'PINEntry'
+Manual', for version 0.9.4.
 
    Published by g10 Code GmbH
 H�ttenstr.  61
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pinentry-0.9.3/doc/stamp-vti 
new/pinentry-0.9.4/doc/stamp-vti
--- old/pinentry-0.9.3/doc/stamp-vti    2015-06-01 18:26:21.000000000 +0200
+++ new/pinentry-0.9.4/doc/stamp-vti    2015-06-05 20:44:09.000000000 +0200
@@ -1,4 +1,4 @@
 @set UPDATED 1 June 2015
 @set UPDATED-MONTH June 2015
-@set EDITION 0.9.3
-@set VERSION 0.9.3
+@set EDITION 0.9.4
+@set VERSION 0.9.4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pinentry-0.9.3/doc/version.texi 
new/pinentry-0.9.4/doc/version.texi
--- old/pinentry-0.9.3/doc/version.texi 2015-06-01 18:26:21.000000000 +0200
+++ new/pinentry-0.9.4/doc/version.texi 2015-06-05 20:44:09.000000000 +0200
@@ -1,4 +1,4 @@
 @set UPDATED 1 June 2015
 @set UPDATED-MONTH June 2015
-@set EDITION 0.9.3
-@set VERSION 0.9.3
+@set EDITION 0.9.4
+@set VERSION 0.9.4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pinentry-0.9.3/gtk+-2/gtksecentry.c 
new/pinentry-0.9.4/gtk+-2/gtksecentry.c
--- old/pinentry-0.9.3/gtk+-2/gtksecentry.c     2015-06-01 17:50:47.000000000 
+0200
+++ new/pinentry-0.9.4/gtk+-2/gtksecentry.c     2015-06-02 11:35:24.000000000 
+0200
@@ -1350,6 +1350,8 @@
 {
     GtkSecureEntry *entry = GTK_SECURE_ENTRY(widget);
 
+    (void)event;
+
     gtk_widget_queue_draw(widget);
 
     entry->need_im_reset = TRUE;
@@ -1370,6 +1372,8 @@
 {
     GtkSecureEntry *entry = GTK_SECURE_ENTRY(widget);
 
+    (void)event;
+
     gtk_widget_queue_draw(widget);
 
     entry->need_im_reset = TRUE;
@@ -1423,6 +1427,8 @@
 {
     GtkSecureEntry *entry = GTK_SECURE_ENTRY(widget);
 
+    (void)previous_state;
+
     if (GTK_WIDGET_REALIZED(widget)) {
        gdk_window_set_background(widget->window,
                                  &widget->style->
@@ -1444,6 +1450,8 @@
 static void
 gtk_secure_entry_screen_changed(GtkWidget * widget, GdkScreen * old_screen)
 {
+    (void)old_screen;
+
     gtk_secure_entry_recompute(GTK_SECURE_ENTRY(widget));
 }
 
@@ -1575,6 +1583,8 @@
 static void
 gtk_cell_editable_secure_entry_activated(GtkSecureEntry * entry, gpointer data)
 {
+    (void)data;
+
     gtk_cell_editable_editing_done(GTK_CELL_EDITABLE(entry));
     gtk_cell_editable_remove_widget(GTK_CELL_EDITABLE(entry));
 }
@@ -1583,6 +1593,8 @@
 gtk_cell_editable_key_press_event(GtkSecureEntry * entry,
                                  GdkEventKey * key_event, gpointer data)
 {
+    (void)data;
+
     if (key_event->keyval == GDK_Escape) {
        entry->editing_canceled = TRUE;
        gtk_cell_editable_editing_done(GTK_CELL_EDITABLE(entry));
@@ -1606,6 +1618,8 @@
 gtk_secure_entry_start_editing(GtkCellEditable * cell_editable,
                               GdkEvent * event)
 {
+    (void)event;
+
     GTK_SECURE_ENTRY(cell_editable)->is_cell_renderer = TRUE;
 
     g_signal_connect(cell_editable, "activate",
@@ -1950,6 +1964,8 @@
   GtkSecureEntry *entry = GTK_SECURE_ENTRY (data);
   GtkEditable *editable = GTK_EDITABLE (entry);
 
+  (void)clipboard;
+
   if (entry->button == 2)
     {
       gint pos, start, end;
@@ -2043,7 +2059,9 @@
 gtk_secure_entry_keymap_direction_changed(GdkKeymap * keymap,
                                          GtkSecureEntry * entry)
 {
-    gtk_secure_entry_recompute(entry);
+  (void)keymap;
+
+  gtk_secure_entry_recompute(entry);
 }
 
 /* IM Context Callbacks
@@ -2053,7 +2071,9 @@
 gtk_secure_entry_commit_cb(GtkIMContext * context,
                           const gchar * str, GtkSecureEntry * entry)
 {
-    gtk_secure_entry_enter_text(entry, str);
+  (void)context;
+
+  gtk_secure_entry_enter_text(entry, str);
 }
 
 static void
@@ -2063,6 +2083,8 @@
     gchar *preedit_string;
     gint cursor_pos;
 
+    (void)context;
+
     gtk_im_context_get_preedit_string(entry->im_context,
                                      &preedit_string, NULL, &cursor_pos);
     entry->preedit_length = strlen(preedit_string);
@@ -2094,6 +2116,8 @@
                                       gint n_chars,
                                       GtkSecureEntry * entry)
 {
+    (void)slave;
+
     gtk_editable_delete_text(GTK_EDITABLE(entry),
                             entry->current_pos + offset,
                             entry->current_pos + offset + n_chars);
@@ -3287,6 +3311,8 @@
 gtk_secure_entry_mnemonic_activate(GtkWidget * widget,
                                   gboolean group_cycling)
 {
+    (void)group_cycling;
+
     gtk_widget_grab_focus(widget);
     return TRUE;
 }
@@ -3476,6 +3502,9 @@
     register GCClosure *cc = (GCClosure *) closure;
     register gpointer data1, data2;
 
+    (void)return_value;
+    (void)invocation_hint;
+
     g_return_if_fail(n_param_values == 4);
 
     if (G_CCLOSURE_SWAP_DATA(closure)) {
@@ -3511,6 +3540,9 @@
     register GCClosure *cc = (GCClosure *) closure;
     register gpointer data1, data2;
 
+    (void)return_value;
+    (void)invocation_hint;
+
     g_return_if_fail(n_param_values == 3);
 
     if (G_CCLOSURE_SWAP_DATA(closure)) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pinentry-0.9.3/gtk+-2/pinentry-gtk-2.c 
new/pinentry-0.9.4/gtk+-2/pinentry-gtk-2.c
--- old/pinentry-0.9.3/gtk+-2/pinentry-gtk-2.c  2015-06-01 17:50:47.000000000 
+0200
+++ new/pinentry-0.9.4/gtk+-2/pinentry-gtk-2.c  2015-06-02 11:29:54.000000000 
+0200
@@ -93,6 +93,8 @@
   static gint width, height;
   GdkGeometry geo;
 
+  (void)data;
+
   if (req->width == width && req->height == height)
     return;
   width = req->width;
@@ -126,6 +128,9 @@
   GdkScreen *screen;
   GdkWindow *root;
 
+  (void)event;
+  (void)data;
+
   if (! pinentry->grab)
     return;
 
@@ -140,6 +145,8 @@
 static int
 grab_keyboard (GtkWidget *win, GdkEvent *event, gpointer data)
 {
+  (void)data;
+
   if (! pinentry->grab)
     return FALSE;
 
@@ -157,6 +164,8 @@
 static int
 ungrab_keyboard (GtkWidget *win, GdkEvent *event, gpointer data)
 {
+  (void)data;
+
   gdk_keyboard_ungrab (gdk_event_get_time (event));
   /* Unmake window transient for the root window.  */
   /* gdk_window_set_transient_for cannot be used with parent = NULL to
@@ -171,6 +180,10 @@
 static int
 delete_event (GtkWidget *widget, GdkEvent *event, gpointer data)
 {
+  (void)widget;
+  (void)event;
+  (void)data;
+
   pinentry->close_button = 1;
   gtk_main_quit ();
   return TRUE;
@@ -180,6 +193,8 @@
 static void
 button_clicked (GtkWidget *widget, gpointer data)
 {
+  (void)widget;
+
   if (data)
     {
       const char *s, *s2;
@@ -218,6 +233,8 @@
 static void
 enter_callback (GtkWidget *widget, GtkWidget *anentry)
 {
+  (void)anentry;
+
   button_clicked (widget, (gpointer) CONFIRM_OK);
 }
 
@@ -225,6 +242,8 @@
 static void
 confirm_button_clicked (GtkWidget *widget, gpointer data)
 {
+  (void)widget;
+
   confirm_value = (confirm_value_t) data;
   gtk_main_quit ();
 }
@@ -236,6 +255,10 @@
 {
   int confirm_mode = !!data;
 
+  (void)acc;
+  (void)keyval;
+  (void)modifier;
+
   if (confirm_mode)
     confirm_button_clicked (GTK_WIDGET (accelerable),
                             (gpointer)CONFIRM_CANCEL);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pinentry-0.9.3/pinentry/password-cache.c 
new/pinentry-0.9.4/pinentry/password-cache.c
--- old/pinentry-0.9.3/pinentry/password-cache.c        2015-06-01 
17:50:47.000000000 +0200
+++ new/pinentry-0.9.4/pinentry/password-cache.c        2015-06-02 
11:17:39.000000000 +0200
@@ -150,7 +150,7 @@
     {
       printf("Failed to clear password for key %s with secret service: %s\n",
             keygrip, error->message);
-      g_debug(error->message);
+      g_debug("%s", error->message);
       g_error_free (error);
       return -1;
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pinentry-0.9.3/pinentry/pinentry.c 
new/pinentry-0.9.4/pinentry/pinentry.c
--- old/pinentry-0.9.3/pinentry/pinentry.c      2015-06-01 17:50:47.000000000 
+0200
+++ new/pinentry-0.9.4/pinentry/pinentry.c      2015-06-05 11:04:50.000000000 
+0200
@@ -168,8 +168,11 @@
 static void
 pinentry_assuan_reset_handler (ASSUAN_CONTEXT ctx)
 {
+  (void)ctx;
   pinentry_reset (0);
 }
+
+
 
 static int lc_ctype_unknown_warning = 0;
 
@@ -435,7 +438,7 @@
     len = 2048;
 
   if (len <= pin->pin_len)
-    return NULL;
+    return pin->pin;
 
   newp = secmem_realloc (pin->pin, len);
   if (newp)
@@ -514,8 +517,9 @@
   drop_privs ();
 
   if (atexit (secmem_term))
-    /* FIXME: Could not register at-exit function, bail out.  */
-    ;
+    {
+      /* FIXME: Could not register at-exit function, bail out.  */
+    }
 
   assuan_set_malloc_hooks (secmem_malloc, secmem_realloc, secmem_free);
 }
@@ -754,6 +758,8 @@
 static int
 option_handler (ASSUAN_CONTEXT ctx, const char *key, const char *value)
 {
+  (void)ctx;
+
   if (!strcmp (key, "no-grab") && !*value)
     pinentry.grab = 0;
   else if (!strcmp (key, "grab") && !*value)
@@ -879,8 +885,10 @@
 cmd_setdesc (ASSUAN_CONTEXT ctx, char *line)
 {
   char *newd;
-  newd = malloc (strlen (line) + 1);
 
+  (void)ctx;
+
+  newd = malloc (strlen (line) + 1);
   if (!newd)
     return ASSUAN_Out_Of_Core;
 
@@ -896,8 +904,10 @@
 cmd_setprompt (ASSUAN_CONTEXT ctx, char *line)
 {
   char *newp;
-  newp = malloc (strlen (line) + 1);
 
+  (void)ctx;
+
+  newp = malloc (strlen (line) + 1);
   if (!newp)
     return ASSUAN_Out_Of_Core;
 
@@ -916,6 +926,8 @@
 static int
 cmd_setkeyinfo (ASSUAN_CONTEXT ctx, char *line)
 {
+  (void)ctx;
+
   if (pinentry.keyinfo)
     free (pinentry.keyinfo);
 
@@ -933,6 +945,8 @@
 {
   char *p;
 
+  (void)ctx;
+
   p = malloc (strlen (line) + 1);
   if (!p)
     return ASSUAN_Out_Of_Core;
@@ -949,6 +963,8 @@
 {
   char *p;
 
+  (void)ctx;
+
   p = malloc (strlen (line) + 1);
   if (!p)
     return ASSUAN_Out_Of_Core;
@@ -964,8 +980,10 @@
 cmd_seterror (ASSUAN_CONTEXT ctx, char *line)
 {
   char *newe;
-  newe = malloc (strlen (line) + 1);
 
+  (void)ctx;
+
+  newe = malloc (strlen (line) + 1);
   if (!newe)
     return ASSUAN_Out_Of_Core;
 
@@ -981,8 +999,10 @@
 cmd_setok (ASSUAN_CONTEXT ctx, char *line)
 {
   char *newo;
-  newo = malloc (strlen (line) + 1);
 
+  (void)ctx;
+
+  newo = malloc (strlen (line) + 1);
   if (!newo)
     return ASSUAN_Out_Of_Core;
 
@@ -998,8 +1018,10 @@
 cmd_setnotok (ASSUAN_CONTEXT ctx, char *line)
 {
   char *newo;
-  newo = malloc (strlen (line) + 1);
 
+  (void)ctx;
+
+  newo = malloc (strlen (line) + 1);
   if (!newo)
     return ASSUAN_Out_Of_Core;
 
@@ -1015,8 +1037,10 @@
 cmd_setcancel (ASSUAN_CONTEXT ctx, char *line)
 {
   char *newc;
-  newc = malloc (strlen (line) + 1);
 
+  (void)ctx;
+
+  newc = malloc (strlen (line) + 1);
   if (!newc)
     return ASSUAN_Out_Of_Core;
 
@@ -1031,18 +1055,22 @@
 static int
 cmd_settimeout (ASSUAN_CONTEXT ctx, char *line)
 {
-    if (line && *line)
-       pinentry.timeout = atoi(line);
+  (void)ctx;
 
-    return 0;
+  if (line && *line)
+    pinentry.timeout = atoi (line);
+
+  return 0;
 }
 
 static int
 cmd_settitle (ASSUAN_CONTEXT ctx, char *line)
 {
   char *newt;
-  newt = malloc (strlen (line) + 1);
 
+  (void)ctx;
+
+  newt = malloc (strlen (line) + 1);
   if (!newt)
     return ASSUAN_Out_Of_Core;
 
@@ -1058,6 +1086,8 @@
 {
   char *newval;
 
+  (void)ctx;
+
   if (!*line)
     line = "Quality:";
 
@@ -1078,6 +1108,8 @@
 {
   char *newval;
 
+  (void)ctx;
+
   if (*line)
     {
       newval = malloc (strlen (line) + 1);
@@ -1102,6 +1134,8 @@
   int set_prompt = 0;
   int just_read_password_from_cache = 0;
 
+  (void)line;
+
   pinentry_setbuffer_init (&pinentry);
   if (!pinentry.pin)
     return ASSUAN_Out_Of_Core;
@@ -1268,6 +1302,8 @@
 static int
 cmd_message (ASSUAN_CONTEXT ctx, char *line)
 {
+  (void)line;
+
   return cmd_confirm (ctx, "--one-button");
 }
 
@@ -1309,6 +1345,8 @@
 static int
 cmd_clear_passphrase (ASSUAN_CONTEXT ctx, char *line)
 {
+  (void)ctx;
+
   if (! line)
     return ASSUAN_Invalid_Value;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pinentry-0.9.3/qt4/secstring.cpp 
new/pinentry-0.9.4/qt4/secstring.cpp
--- old/pinentry-0.9.3/qt4/secstring.cpp        2013-03-21 09:43:50.000000000 
+0100
+++ new/pinentry-0.9.4/qt4/secstring.cpp        2015-06-02 11:35:23.000000000 
+0200
@@ -1,20 +1,20 @@
-/* 
+/*
    secstring.h - typedefs and conversion for secmem-backed std::strings.
 
    Copyright (C) 2008 Klar�lvdalens Datakonsult AB (KDAB)
 
    Written by Marc Mutz <m...@kdab.com>.
-   
+
    This program is free software; you can redistribute it and/or
    modify it under the terms of the GNU General Public License as
    published by the Free Software Foundation; either version 2 of the
    License, or (at your option) any later version.
- 
+
    This program is distributed in the hope that it will be useful, but
    WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    General Public License for more details.
- 
+
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 
USA.
@@ -68,7 +68,7 @@
     if (const int l = str.size()) {
         int rlen = l*3+1;
         ba.reserve(rlen);
-        uchar *cursor = (uchar*)ba.data();
+        /*uchar *cursor = (uchar*)ba.data();*/
         const QChar *ch = str.data();
         for (int i=0; i < l; i++) {
             uint u = ch->unicode();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pinentry-0.9.3/secmem/secmem.c 
new/pinentry-0.9.4/secmem/secmem.c
--- old/pinentry-0.9.3/secmem/secmem.c  2015-06-01 17:50:47.000000000 +0200
+++ new/pinentry-0.9.4/secmem/secmem.c  2015-06-05 20:39:33.000000000 +0200
@@ -363,7 +363,8 @@
     if( cur_blocks > max_blocks )
        max_blocks = cur_blocks;
 
-    memset (&mb->u.aligned.c, 0, size);
+    memset (&mb->u.aligned.c, 0,
+           size - (size_t) &((struct memblock_struct *) 0)->u.aligned.c);
 
     return &mb->u.aligned.c;
 }


Reply via email to