agent: For SSH key, don't put NUL-byte at the end.
authorNIIBE Yutaka <gniibe@fsij.org>
Tue, 21 May 2019 06:50:28 +0000 (15:50 +0900)
committerDaniel Kahn Gillmor <dkg@fifthhorseman.net>
Fri, 1 Jul 2022 16:06:43 +0000 (17:06 +0100)
* agent/command-ssh.c (ssh_key_to_protected_buffer): Update
the length by the second call of gcry_sexp_sprint.

--

GnuPG-bug-id: 4502
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
(cherry picked from commit 6e39541f4f488fe59eac399bad18c465f373a784)

Gbp-Pq: Topic from-2.2.16
Gbp-Pq: Name agent-For-SSH-key-don-t-put-NUL-byte-at-the-end.patch

agent/command-ssh.c

index 9255830bf40747a7d88c459e77259c75c402a370..ce621f7feb7abbcdd08872db5d8b30e46361c7e2 100644 (file)
@@ -3033,8 +3033,8 @@ ssh_key_to_protected_buffer (gcry_sexp_t key, const char *passphrase,
       goto out;
     }
 
-  gcry_sexp_sprint (key, GCRYSEXP_FMT_CANON, buffer_new, buffer_new_n);
-  /* FIXME: guarantee?  */
+  buffer_new_n = gcry_sexp_sprint (key, GCRYSEXP_FMT_CANON,
+                                   buffer_new, buffer_new_n);
 
   if (*passphrase)
     err = agent_protect (buffer_new, passphrase, buffer, buffer_n, 0, -1);