]> granicus.if.org Git - procps-ng/commitdiff
proc/slab.c: Initialize struct slab_info in get_slabnode().
authorQualys Security Advisory <qsa@qualys.com>
Thu, 1 Jan 1970 00:00:00 +0000 (00:00 +0000)
committerCraig Small <csmall@enc.com.au>
Fri, 18 May 2018 21:32:21 +0000 (07:32 +1000)
Especially its "next" member: this is what caused the crash in "slabtop:
Reset slab_list if get_slabinfo() fails." (if parse_slabinfo*() fails in
sscanf(), for example, then curr is set to NULL but it is already linked
into the "list" and its "next" member was never initialized).

proc/slab.c

index 4bafad011bdc4106d9125552317f36686f3ef708..57370944400402d5ab932392ffa3f069a532aa47 100644 (file)
@@ -48,6 +48,7 @@ static struct slab_info *free_index;
  */
 static struct slab_info *get_slabnode(void)
 {
+       static const struct slab_info initializer;
        struct slab_info *node;
 
        if (free_index) {
@@ -56,7 +57,7 @@ static struct slab_info *get_slabnode(void)
        } else {
                node = xmalloc(sizeof(struct slab_info));
        }
-
+       *node = initializer;
        return node;
 }