--- irqbalance-0.56.orig/procinterrupts.c 2010-06-10 10:45:55.000000000 -0400 +++ irqbalance-0.56/procinterrupts.c 2011-05-10 20:22:06.897465003 -0400 @@ -50,7 +50,7 @@ void parse_proc_interrupts(void) int cpunr; int number; uint64_t count; - char *c, *c2; + char *c, *c2, *err; if (getline(&line, &size, file)==0) break; @@ -64,7 +64,11 @@ void parse_proc_interrupts(void) continue; *c = 0; c++; - number = strtoul(line, NULL, 10); + number = strtoul(line, &err, 10); + /* Man page says that if that happens and number == 0, then it + * failed to parse. */ + if (err == line && number == 0) + continue; count = 0; cpunr = 0;