public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] 4xx warnings on cmd_elf.c
@ 2008-10-31 14:30 Kumar Gala
  2008-10-31 15:16 ` Stefan Roese
  0 siblings, 1 reply; 3+ messages in thread
From: Kumar Gala @ 2008-10-31 14:30 UTC (permalink / raw)
  To: u-boot

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] ?

- k

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [U-Boot] 4xx warnings on cmd_elf.c
  2008-10-31 14:30 [U-Boot] 4xx warnings on cmd_elf.c Kumar Gala
@ 2008-10-31 15:16 ` Stefan Roese
  2008-11-01 10:30   ` Niklaus Giger
  0 siblings, 1 reply; 3+ messages in thread
From: Stefan Roese @ 2008-10-31 15:16 UTC (permalink / raw)
  To: u-boot

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
=====================================================================

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [U-Boot] 4xx warnings on cmd_elf.c
  2008-10-31 15:16 ` Stefan Roese
@ 2008-11-01 10:30   ` Niklaus Giger
  0 siblings, 0 replies; 3+ messages in thread
From: Niklaus Giger @ 2008-11-01 10:30 UTC (permalink / raw)
  To: u-boot

Stefan Roese wrote:

> 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)]
You are definitely right. But the code is broken in several ways as it does
no generate a correct bootline which can be interpreted by vxWorks
> I have no VxWorks platform to test this though.
A patch (tested) on my HCUx platform will follow soon.
> 
> Best regards,
> Stefan
Best regards

Niklaus

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2008-11-01 10:30 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-10-31 14:30 [U-Boot] 4xx warnings on cmd_elf.c Kumar Gala
2008-10-31 15:16 ` Stefan Roese
2008-11-01 10:30   ` Niklaus Giger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox