powertop: replace erroneous \n with \0; make numberic conversion more robust
authorDenys Vlasenko <vda.linux@googlemail.com>
Thu, 4 Nov 2010 22:22:40 +0000 (23:22 +0100)
committerDenys Vlasenko <vda.linux@googlemail.com>
Thu, 4 Nov 2010 22:22:40 +0000 (23:22 +0100)
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
procps/powertop.c

index 4c3c3565e2d520f8ae467a2a269dd7c59b20fa01..87efbe892eb5ee7dea50ef3930e329806c20a110 100644 (file)
@@ -323,18 +323,16 @@ static void process_irq_counts(void)
                 */
                *p = '\0';
                /* Deal with non-maskable interrupts -- make up fake numbers */
-               nr = index_in_strings("NMI\0RES\nCAL\0TLB\0TRM\0THR\0SPU\0", buf);
-               if (nr != -1) {
+               nr = index_in_strings("NMI\0RES\0CAL\0TLB\0TRM\0THR\0SPU\0", buf);
+               if (nr >= 0) {
                        nr += 20000;
                } else {
                        /* bb_strtou doesn't eat leading spaces, using strtoul */
+                       errno = 0;
                        nr = strtoul(buf, NULL, 10);
+                       if (errno)
+                               continue;
                }
-               *p = ':';
-
-               if (nr == -1)
-                       continue;
-
                p++;
                /*  0:  143646045  153901007   IO-APIC-edge      timer
                 *    ^