[U-Boot] Bug in fdt_fixup_fman_firmware
Николай Пузанов
punzik at gmail.com
Tue Apr 16 16:38:10 CEST 2013
Hello!
In my opinion I found a bug in the function 'fdt_fixup_fman_firmware'
(arch/powerpc/cpu/mpc85xx/fdt.c): on line 495 function
'simple_strtul' takes an hex number without the prefix '0x' and
considers it a decimal. Here are two variants for correcting this bug,
but I do not know what will be correct:
--- a/common/cmd_nvedit.c
+++ b/common/cmd_nvedit.c
@@ -308,9 +308,9 @@
*/
int setenv_hex(const char *varname, ulong value)
{
- char str[17];
+ char str[19];
- sprintf(str, "%lx", value);
+ sprintf(str, "0x%lx", value);
return setenv(varname, str);
}
--- a/arch/powerpc/cpu/mpc85xx/fdt.c
+++ b/arch/powerpc/cpu/mpc85xx/fdt.c
@@ -492,7 +492,7 @@
if (!p)
return;
- fmanfw = (struct qe_firmware *) simple_strtoul(p, NULL, 0);
+ fmanfw = (struct qe_firmware *) simple_strtoul(p, NULL, 16);
if (!fmanfw)
return;
I think that would be correct to patch cmd_nvedit.c
Nikolay Puzanov.
More information about the U-Boot
mailing list