]> www.infradead.org Git - users/mchehab/rasdaemon.git/commitdiff
rasdaemon: correct range while parsing top, middle and lower layers
authorAristeu Rozanski <aris@redhat.com>
Mon, 21 Jul 2014 19:25:40 +0000 (15:25 -0400)
committerMauro Carvalho Chehab <m.chehab@samsung.com>
Thu, 14 Aug 2014 19:03:45 +0000 (16:03 -0300)
{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 <fweimer@redhat.com>
Signed-off-by: Aristeu Rozanski <arozansk@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
ras-mc-handler.c

index 704a41cde59e10e56b08d066a77134d173a4f2ac..c98008aeae85d827bd8750f830d147de41e91c41 100644 (file)
@@ -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)