.. | .. |
---|
448 | 448 | { |
---|
449 | 449 | char *ptr = (char *) firmware; |
---|
450 | 450 | char b[9]; |
---|
451 | | - unsigned int iobase, tmp; |
---|
| 451 | + unsigned int iobase, tmp, tn; |
---|
452 | 452 | unsigned long size, addr, fcs; |
---|
453 | 453 | int i, err = 0; |
---|
454 | 454 | |
---|
.. | .. |
---|
490 | 490 | memset(b, 0, sizeof(b)); |
---|
491 | 491 | for (tmp = 0, i = 0; i < size; i++) { |
---|
492 | 492 | memcpy(b, ptr + (i * 2) + 2, 2); |
---|
493 | | - tmp += simple_strtol(b, NULL, 16); |
---|
| 493 | + if (kstrtouint(b, 16, &tn)) |
---|
| 494 | + return -EINVAL; |
---|
| 495 | + tmp += tn; |
---|
494 | 496 | } |
---|
495 | 497 | |
---|
496 | 498 | if (((tmp + fcs) & 0xff) != 0xff) { |
---|
.. | .. |
---|
505 | 507 | memset(b, 0, sizeof(b)); |
---|
506 | 508 | for (i = 0; i < (size - 4) / 2; i++) { |
---|
507 | 509 | memcpy(b, ptr + (i * 4) + 12, 4); |
---|
508 | | - tmp = simple_strtoul(b, NULL, 16); |
---|
| 510 | + if (kstrtouint(b, 16, &tmp)) |
---|
| 511 | + return -EINVAL; |
---|
509 | 512 | bt3c_put(iobase, tmp); |
---|
510 | 513 | } |
---|
511 | 514 | } |
---|