]> granicus.if.org Git - procps-ng/commitdiff
pmap: avoid depending on an uninitialised value.
authorAdam Sampson <ats@offog.org>
Wed, 30 Apr 2014 13:20:21 +0000 (14:20 +0100)
committerJaromir Capik <jcapik@redhat.com>
Tue, 19 Aug 2014 16:59:28 +0000 (18:59 +0200)
It's possible for the first entry that this reads from /proc/*/smaps to
start with a map_desc-less line like this:

7fa71b77d000-7fa71c288000 rw-p 00000000 00:00 0

in which case sscanf will only read up to inode, and it won't set c; the
code below would then incorrectly discard the next ("Size:") line.

(With GCC 4.9.0, this bug causes the "pmap extra extended output" test
to fail for me.)

pmap.c

diff --git a/pmap.c b/pmap.c
index 7777a196f5996b866194b1dcdcbefa8447906174..c83617cde86bdc3ed1b3d2ff6381453eb213dee7 100644 (file)
--- a/pmap.c
+++ b/pmap.c
@@ -314,6 +314,7 @@ static void print_extended_maps (FILE *f)
        while (ret != NULL) {
                /* === READ MAPPING === */
                map_desc[0] = '\0';
+               c = '\n';
                nfields = sscanf(mapbuf,
                                 "%"NUML"[0-9a-f]-%"NUML"[0-9a-f] "
                                 "%"DETL"s %"NUML"[0-9a-f] "