From mboxrd@z Thu Jan 1 00:00:00 1970 From: Samuel Thibault Subject: Re: [PATCH for-xen-4.5] stubdom: another for fix for lwip compile Date: Tue, 7 Oct 2014 18:18:23 +0200 Message-ID: <20141007161823.GC2983@type> References: <1412691346-20511-1-git-send-email-olaf@aepfle.de> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Return-path: Content-Disposition: inline In-Reply-To: <1412691346-20511-1-git-send-email-olaf@aepfle.de> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Olaf Hering Cc: Stefano Stabellini , xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org Olaf Hering, le Tue 07 Oct 2014 16:15:46 +0200, a =E9crit : > stubdom/lwip-x86_64/src/core/dhcp.c: In function 'dhcp_create_request': > stubdom/lwip-x86_64/src/core/dhcp.c:1361:64: error: array subscript is ab= ove array bounds > = > The previous attempt to fix the failure above worked fine in SLE11, > openSUSE 13.1 and newer. But gcc-4.5 as included in openSUSE 11.4 still > failed to compile. To fix compilation also with this version of gcc move > the range check right into the code instead of assigning it to a > temporary variable. > = > Signed-off-by: Olaf Hering > Cc: Samuel Thibault > Cc: Stefano Stabellini Acked-by: Samuel Thibault > --- > stubdom/lwip.dhcp_create_request-hwaddr_len.patch | 15 +-------------- > 1 file changed, 1 insertion(+), 14 deletions(-) > = > diff --git a/stubdom/lwip.dhcp_create_request-hwaddr_len.patch b/stubdom/= lwip.dhcp_create_request-hwaddr_len.patch > index 12f1014..c43f282 100644 > --- a/stubdom/lwip.dhcp_create_request-hwaddr_len.patch > +++ b/stubdom/lwip.dhcp_create_request-hwaddr_len.patch > @@ -1,26 +1,13 @@ > ---- > - lwip-x86_64/src/core/dhcp.c | 4 +++- > - 1 file changed, 3 insertions(+), 1 deletion(-) > - > Index: src/core/dhcp.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- src/core/dhcp.c > +++ src/core/dhcp.c > -@@ -1322,6 +1322,8 @@ dhcp_create_request(struct netif *netif) > - { > - struct dhcp *dhcp; > - u16_t i; > -+ /* gcc can not know if hwaddr_len exceeds the hwaddr array size */ > -+ u8_t hwaddr_len =3D netif->hwaddr_len > NETIF_MAX_HWADDR_LEN ? NETIF_= MAX_HWADDR_LEN : netif->hwaddr_len; > - LWIP_ERROR("dhcp_create_request: netif !=3D NULL", (netif !=3D NULL),= return ERR_ARG;); > - dhcp =3D netif->dhcp; > - LWIP_ERROR("dhcp_create_request: dhcp !=3D NULL", (dhcp !=3D NULL), r= eturn ERR_VAL;); > @@ -1356,7 +1358,7 @@ dhcp_create_request(struct netif *netif) > dhcp->msg_out->giaddr.addr =3D 0; > for (i =3D 0; i < DHCP_CHADDR_LEN; i++) { > /* copy netif hardware address, pad with zeroes */ > - dhcp->msg_out->chaddr[i] =3D (i < netif->hwaddr_len) ? netif->hwadd= r[i] : 0/* pad byte*/; > -+ dhcp->msg_out->chaddr[i] =3D (i < hwaddr_len) ? netif->hwaddr[i] : = 0/* pad byte*/; > ++ dhcp->msg_out->chaddr[i] =3D (i < (netif->hwaddr_len > NETIF_MAX_HW= ADDR_LEN ? NETIF_MAX_HWADDR_LEN : netif->hwaddr_len)) ? netif->hwaddr[i] : = 0/* pad byte*/; > } > for (i =3D 0; i < DHCP_SNAME_LEN; i++) { > dhcp->msg_out->sname[i] =3D 0; > = -- = Samuel Running Windows on a Pentium is like having a brand new Porsche but only be able to drive backwards with the handbrake on. (Unknown source)