[U-Boot] [PATCH] cmd_fdt.c: Use %p when printing pointers
Wolfgang Denk
wd at denx.de
Tue Oct 30 10:59:27 CET 2012
Dear Tom Rini,
In message <1351558398-6902-1-git-send-email-trini at ti.com> you wrote:
> When putting pointers into a format string use %p to ensure that they
> are printed correctly regardless of bitsize. This fixes warnings on
> sandbox on 64bit systems.
>
> Cc: Joe Hershberger <joe.hershberger at ni.com>
> Cc: Gerald Van Baren <vanbaren at cideas.com>
> Signed-off-by: Tom Rini <trini at ti.com>
> ---
> common/cmd_fdt.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/common/cmd_fdt.c b/common/cmd_fdt.c
> index a5e2cfc..f9acfc1 100644
> --- a/common/cmd_fdt.c
> +++ b/common/cmd_fdt.c
> @@ -375,7 +375,7 @@ int do_fdt (cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
> /* Get address */
> char buf[11];
>
> - sprintf(buf, "0x%08X", (uint32_t)nodep);
> + sprintf(buf, "0x%p", nodep);
> setenv(var, buf);
This may put bogus data ("var=0x(null)") into the environment.
I see two approaches to fix this:
1) Handle this locally, say like that:
char buf[11] = { '0', 0, };
if (nodep)
sprintf(buf, "0x%p", nodep);
setenv(var, buf);
This is the solution with minimal global impact.
2) Fix the root cause: given that we have valid situations where we
may want to dereference a pointer pointing to address 0x0000,
I wonder if it would not actually be better (i. e. more correct) to
get rid of the
495 static char *pointer(const char *fmt, char *buf, char *end, void *ptr,
496 int field_width, int precision, int flags)
497 {
498 if (!ptr)
499 return string(buf, end, "(null)", field_width, precision,
500 flags);
special handling in "lib/vsprintf.c"
Would anybody shed any tears if we drop this?
Best regards,
Wolfgang Denk
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
You could end up being oddly sad and full of a strange, diffuse com-
passion which would lead you to believe that it might be a good idea
to wipe out the whole human race and start again with amoebas.
- Terry Pratchett, _Guards! Guards!_
More information about the U-Boot
mailing list