summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko2010-11-04 23:22:40 +0100
committerDenys Vlasenko2010-11-04 23:22:40 +0100
commitdcb163aa8e7808b59aef3d3319c707e7d9ac4ce4 (patch)
treee1beb028bc752ed67f3c4ca752246a646b6895c3
parent3bbfb58bec18990a2ee93f31ea1ee2fd19c4d9b2 (diff)
downloadbusybox-dcb163aa8e7808b59aef3d3319c707e7d9ac4ce4.zip
busybox-dcb163aa8e7808b59aef3d3319c707e7d9ac4ce4.tar.gz
powertop: replace erroneous \n with \0; make numberic conversion more robust
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--procps/powertop.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/procps/powertop.c b/procps/powertop.c
index 4c3c356..87efbe8 100644
--- a/procps/powertop.c
+++ b/procps/powertop.c
@@ -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
* ^