[U-Boot] 4xx warnings on cmd_elf.c

Stefan Roese sr at denx.de
Fri Oct 31 16:16:15 CET 2008


On Friday 31 October 2008, Kumar Gala wrote:
> So when I build a 4xx config I see:
>
> cmd_elf.c: In function 'do_bootvx':
> cmd_elf.c:173: warning: array subscript is below array bounds
> cmd_elf.c:176: warning: array subscript is below array bounds
> cmd_elf.c:181: warning: array subscript is below array bounds
>
>                 sprintf (build_buf, "ibmEmac(0,0)");
>
>                 if ((tmp = getenv ("hostname")) != NULL) {
>                         sprintf (&build_buf[strlen (build_buf - 1)],
>                                 "host:%s ", tmp);
>                 } else {
>                         sprintf (&build_buf[strlen (build_buf - 1)],
>                                 ": ");
>                 }
>
>                 if ((tmp = getenv ("ipaddr")) != NULL) {
>                         sprintf (&build_buf[strlen (build_buf - 1)],
>                                 "e=%s ", tmp);
>                 }
>
>
> these seem suspect.. should this be &build_buf[strlen(build_buf) - 1] ?

I haven't seen those warnings before. Triggered by your newer gcc most likely. 
But you seem to be correct. The current code is definitely wrong. And I think 
that your version is wrong as well. This should do the "right thing":

	&build_buf[strlen(build_buf)]

I have no VxWorks platform to test this though.

Best regards,
Stefan

=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80  Email: office at denx.de
=====================================================================


More information about the U-Boot mailing list