[Pkg-gnupg-commit] [gnupg2] 06/42: gpg: Do not read from uninitialized memory with --list-packets.

Daniel Kahn Gillmor dkg at fifthhorseman.net
Wed Jan 3 18:25:52 UTC 2018


This is an automated email from the git hooks/post-receive script.

dkg pushed a commit to branch upstream
in repository gnupg2.

commit 4cf3cc6e3d48c8400466ca29c3f1c22ed2da6c2c
Author: Werner Koch <wk at gnupg.org>
Date:   Sun Nov 26 18:33:49 2017 +0100

    gpg: Do not read from uninitialized memory with --list-packets.
    
    * g10/parse-packet.c (parse_plaintext): Fill up the allocated NAME.
    --
    
    This actually does not harm because we merely display a buffer
    allocated by ourselves.  However, we better tell Valgrind about it so
    that we don't need to track this thing down ever again.
    
    Test using a corrupted literal data packet:
    
      echo cb 0a 75 ff 59 ae 90 d5  74 65 73 74 | \
        undump |\
        valgrind gpg --list-packets >/dev/null
    
    Reported-by: Sebastian Schinzel
    Signed-off-by: Werner Koch <wk at gnupg.org>
---
 g10/parse-packet.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/g10/parse-packet.c b/g10/parse-packet.c
index 0b6ee8b..eee14f6 100644
--- a/g10/parse-packet.c
+++ b/g10/parse-packet.c
@@ -3087,6 +3087,12 @@ parse_plaintext (IOBUF inp, int pkttype, unsigned long pktlen,
 	else
 	  pt->name[i] = c;
     }
+  /* Fill up NAME so that a check with valgrind won't complain about
+   * reading from uninitalized memory.  This case may be triggred by
+   * corrupted packets.  */
+  for (; i < namelen; i++)
+    pt->name[i] = 0;
+
   pt->timestamp = read_32 (inp);
   if (pktlen)
     pktlen -= 4;

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-gnupg/gnupg2.git



More information about the Pkg-gnupg-commit mailing list