From 1f9dfe1fedad215140011257d9b1bb21bc368179 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Mon, 24 Nov 2014 19:24:47 +0100 Subject: [PATCH] gpg: Fix use of uninit.value in listing sig subpkts. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * g10/parse-packet.c (dump_sig_subpkt): Print regex subpacket sanitized. -- We may not use "%s" to print an arbitrary buffer. At least "%.*s" should have been used. However, it is in general preferable to escape control characters while printf user data. Reported-by: Hanno Böck Signed-off-by: Werner Koch (backported from commit 596ae9f5433ca3b0e01f7acbe06fd2e424c42ae8) --- g10/parse-packet.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/g10/parse-packet.c b/g10/parse-packet.c index 99ff7b7b1..63b97f05e 100644 --- a/g10/parse-packet.c +++ b/g10/parse-packet.c @@ -972,7 +972,11 @@ dump_sig_subpkt( int hashed, int type, int critical, if(!length) p="[invalid regexp subpacket]"; else - fprintf (listfp, "regular expression: \"%s\"",buffer); + { + fprintf (listfp, "regular expression: \""); + print_string (listfp, buffer, length, '\"'); + p = "\""; + } break; case SIGSUBPKT_REVOCABLE: if( length )