[PATCH] lib: strto: Stop detection when invalid char is used
Michal Simek
michal.simek at xilinx.com
Wed Apr 8 10:09:16 CEST 2020
This issue has been found when mtd partition are specified. Autodetection
code should stop when the first invalid char is found.
Here is the example of commands:
setenv mtdids nand0=memory-controller at e000e000
setenv mtdparts "mtdparts=nand0:4m(boot),4m(env),64m(kernel),96m(rootfs)"
mtd list
Before:
Zynq> mtd list
List of MTD devices:
* nand0
- type: NAND flash
- block size: 0x20000 bytes
- min I/O: 0x800 bytes
- OOB size: 64 bytes
- OOB available: 16 bytes
- ECC strength: 1 bits
- ECC step size: 2048 bytes
- bitflip threshold: 1 bits
- 0x000000000000-0x000010000000 : "nand0"
- 0x000000000000-0x000000400000 : "boot"
- 0x000000400000-0x000000800000 : "env"
- 0x000000800000-0x000006c00000 : "kernel"
- 0x000006c00000-0x000010000000 : "rootfs"
Where it is visible that kernel partition has 100m instead of 64m
After:
Zynq> mtd list
* nand0
- type: NAND flash
- block size: 0x20000 bytes
- min I/O: 0x800 bytes
- OOB size: 64 bytes
- OOB available: 16 bytes
- ECC strength: 1 bits
- ECC step size: 2048 bytes
- bitflip threshold: 1 bits
- 0x000000000000-0x000010000000 : "nand0"
- 0x000000000000-0x000000400000 : "boot"
- 0x000000400000-0x000000800000 : "env"
- 0x000000800000-0x000004800000 : "kernel"
- 0x000004800000-0x00000a800000 : "rootfs"
Signed-off-by: Michal Simek <michal.simek at xilinx.com>
---
lib/strto.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/lib/strto.c b/lib/strto.c
index 1ac2b09c725c..606701566f32 100644
--- a/lib/strto.c
+++ b/lib/strto.c
@@ -34,6 +34,9 @@ static const char *_parse_integer_fixup_radix(const char *s, unsigned int *base)
*base = 16;
break;
}
+
+ if (!(var >= '0' && var <= '9'))
+ break;
} while (var);
}
}
--
2.26.0
More information about the U-Boot
mailing list