hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/drivers/bluetooth/bt3c_cs.c
....@@ -448,7 +448,7 @@
448448 {
449449 char *ptr = (char *) firmware;
450450 char b[9];
451
- unsigned int iobase, tmp;
451
+ unsigned int iobase, tmp, tn;
452452 unsigned long size, addr, fcs;
453453 int i, err = 0;
454454
....@@ -490,7 +490,9 @@
490490 memset(b, 0, sizeof(b));
491491 for (tmp = 0, i = 0; i < size; i++) {
492492 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;
494496 }
495497
496498 if (((tmp + fcs) & 0xff) != 0xff) {
....@@ -505,7 +507,8 @@
505507 memset(b, 0, sizeof(b));
506508 for (i = 0; i < (size - 4) / 2; i++) {
507509 memcpy(b, ptr + (i * 4) + 12, 4);
508
- tmp = simple_strtoul(b, NULL, 16);
510
+ if (kstrtouint(b, 16, &tmp))
511
+ return -EINVAL;
509512 bt3c_put(iobase, tmp);
510513 }
511514 }