Fix bug #1311.
authorWerner Koch <wk@gnupg.org>
Mon, 10 Jan 2011 10:37:57 +0000 (11:37 +0100)
committerAndrey Jivsov <openpgp@brainhub.org>
Mon, 10 Jan 2011 22:19:28 +0000 (14:19 -0800)
NEWS
common/ChangeLog
common/session-env.c

diff --git a/NEWS b/NEWS
index 2cdf854..2153733 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -14,6 +14,9 @@ Noteworthy changes in version 2.1.0beta2 (unreleased)
 
  * Fixed CRL loading under W32 (bug#1010).
 
+ * Fixed TTY management for pinentries and session variable update
+   problem.
+
 
 Noteworthy changes in version 2.1.0beta1 (2010-10-26)
 -----------------------------------------------------
index de96b8d..6a6f6e0 100644 (file)
@@ -1,3 +1,8 @@
+2011-01-10  Werner Koch  <wk@g10code.com>
+
+       * session-env.c (update_var): Fix same value detection.  Fixes
+       bug#1311.
+
 2010-12-17  Werner Koch  <wk@g10code.com>
 
        * asshelp.c (lock_spawning): Add arg VERBOSE.  Improve timeout
index 2dcf425..d719a7b 100644 (file)
@@ -183,10 +183,11 @@ update_var (session_env_t se, const char *string, size_t namelen,
       else if (!strncmp (se->array[idx]->name, string, namelen)
                && strlen (se->array[idx]->name) == namelen)
         {
-          /* Check if the value is the same; no need to update it,
-             except for updating the default flag.  */
           if (strlen (se->array[idx]->value) == valuelen)
             {
+              /* The new value has the same length.  We can update it
+                 in-place.  */
+              memcpy (se->array[idx]->value, value, valuelen);
               se->array[idx]->is_default = !!set_default;
               return 0;
             }