From: Aristeu Rozanski Date: Mon, 21 Jul 2014 19:25:40 +0000 (-0400) Subject: rasdaemon: correct range while parsing top, middle and lower layers X-Git-Tag: v0.5.4~3 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=a753dc0e3e13d069acb02d07279975690c53f671;p=users%2Fmchehab%2Frasdaemon.git rasdaemon: correct range while parsing top, middle and lower layers {top,middle,lower}_layer are signed char, therefore will never be 255. Reference: https://bugzilla.redhat.com/show_bug.cgi?id=1035746 Tested in a GHES enabled machine using EINJ. v2: no need to test ranges at all Reported-by: Florian Weimer Signed-off-by: Aristeu Rozanski Signed-off-by: Mauro Carvalho Chehab --- diff --git a/ras-mc-handler.c b/ras-mc-handler.c index 704a41c..c98008a 100644 --- a/ras-mc-handler.c +++ b/ras-mc-handler.c @@ -120,25 +120,17 @@ int ras_mc_event_handler(struct trace_seq *s, if (pevent_get_field_val(s, event, "top_layer", record, &val, 1) < 0) goto parse_error; parsed_fields++; + ev.top_layer = (signed char) val; - ev.top_layer = (int) val; if (pevent_get_field_val(s, event, "middle_layer", record, &val, 1) < 0) goto parse_error; parsed_fields++; + ev.middle_layer = (signed char) val; - ev.middle_layer = (int) val; if (pevent_get_field_val(s, event, "lower_layer", record, &val, 1) < 0) goto parse_error; parsed_fields++; - - ev.lower_layer = (int) val; - - if (ev.top_layer == 255) - ev.top_layer = -1; - if (ev.middle_layer == 255) - ev.middle_layer = -1; - if (ev.lower_layer == 255) - ev.lower_layer = -1; + ev.lower_layer = (signed char) val; if (ev.top_layer >= 0 || ev.middle_layer >= 0 || ev.lower_layer >= 0) { if (ev.lower_layer >= 0)