From ae6288da84ff6e6c70d4a9719b8935995022f65e Mon Sep 17 00:00:00 2001 From: Sami Kerola Date: Sat, 19 Jan 2013 00:09:02 +0000 Subject: dmesg: add boundary check to facility & level array usage The dmesg should not crash while --decode'ing message facilities and levels to readable string even if the values are out of bounds. Signed-off-by: Sami Kerola --- sys-utils/dmesg.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'sys-utils/dmesg.c') diff --git a/sys-utils/dmesg.c b/sys-utils/dmesg.c index f95db408d..ddab9b4ac 100644 --- a/sys-utils/dmesg.c +++ b/sys-utils/dmesg.c @@ -803,7 +803,9 @@ static void print_record(struct dmesg_control *ctl, /* * facility : priority : */ - if (ctl->decode && rec->level >= 0 && rec->facility >= 0) + if (ctl->decode && + -1 < rec->level && rec->level < (int) ARRAY_SIZE(level_names) && + -1 < rec->facility && rec->facility < (int) ARRAY_SIZE(facility_names)) printf("%-6s:%-6s: ", facility_names[rec->facility].name, level_names[rec->level].name); -- cgit v1.2.3-55-g7522