
On Friday 24 April 2020 21:33:42 Pali Rohár wrote:
On Friday 24 April 2020 15:28:01 Tom Rini wrote:
On Fri, Apr 24, 2020 at 09:15:43PM +0200, Pali Rohár wrote:
On Friday 24 April 2020 15:12:42 Tom Rini wrote:
On Fri, Apr 24, 2020 at 08:29:41PM +0200, Pali Rohár wrote:
On Friday 24 April 2020 20:21:33 Pali Rohár wrote:
Commit 0486497e2b5f ("lib: Improve _parse_integer_fixup_radix base 16 detection") broke parsing MTD partition sizes specified in decimal base.
E.g. "128k(bootloader)" is parsed by drivers/mtd/mtdpart.c as hexadecimal number (0x128 << 10) because character 'a' in substring "bootloader" caused parsing whole number as hexadecimal.
This patch stop doing hexadecimal base heuristic on first non-valid hexadecimal number, so "128k(bootloader)" is parsed as decimal number 128.
Fixes: 0486497e2b5f ("lib: Improve _parse_integer_fixup_radix base 16...") Signed-off-by: Pali Rohár pali@kernel.org
lib/strto.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/lib/strto.c b/lib/strto.c index 1ac2b09c72..060b66b915 100644 --- a/lib/strto.c +++ b/lib/strto.c @@ -30,6 +30,9 @@ static const char *_parse_integer_fixup_radix(const char *s, unsigned int *base)
do { var = tolower(s[i++]);
if (!(var >= '0' && var <= '9') &&
!(var >= 'a' && var <= 'f'))
break; if (var >= 'a' && var <= 'f') { *base = 16; break;
-- 2.20.1
CC Tom, this problem was detected by my in-progress Travis Nokia N900 test which tries to boot kernel from the OneNAND. Build log is there: https://travis-ci.org/github/u-boot/u-boot/jobs/679007310
This is the same as: http://patchwork.ozlabs.org/project/uboot/patch/1a681dbefac4c353ad53d7f6cd1a... yes? Thanks!
Yes, this is the same problem.
Can you please test (and Tested-by) that one? Thanks!
It is basically same patch as mine... but ok I'm going to run that my automated Nokia N900 test locally with above patch.
That patch is working fine, you can add my Tested-by: Pali Rohár pali@kernel.org for it