]> granicus.if.org Git - procps-ng/commitdiff
0042-proc/slab.h: Fix off-by-one overflow in sscanf().
authorQualys Security Advisory <qsa@qualys.com>
Thu, 1 Jan 1970 00:00:00 +0000 (00:00 +0000)
committerCraig Small <csmall@enc.com.au>
Sat, 9 Jun 2018 11:35:19 +0000 (21:35 +1000)
In proc/slab.c, functions parse_slabinfo20() and parse_slabinfo11(),
sscanf() might overflow curr->name, because "String input conversions
store a terminating null byte ('\0') to mark the end of the input; the
maximum field width does not include this terminator."

Add one byte to name[] for this terminator.

---------------------------- adapted for newlib branch
. file is now proc/slabinfo.c (not .h)
. manifest constant renamed SLABINFO_NAME_LEN
. older parse_slabinfo11() function no longer present

Signed-off-by: Jim Warner <james.warner@comcast.net>
proc/slabinfo.c

index ba0219c4446d5381c6f44d3f3a68e5f6d8ee49b6..966cf7d38f8684bf5c22b620db74d6b0406ea50a 100644 (file)
@@ -76,7 +76,7 @@ struct slabs_summ {
 };
 
 struct slabs_node {
-    char name[SLABINFO_NAME_LEN];    // name of this cache
+    char name[SLABINFO_NAME_LEN+1];  // name of this cache
     unsigned long cache_size;        // size of entire cache
     unsigned int  nr_objs;           // number of objects in this cache
     unsigned int  nr_active_objs;    // number of active objects