qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] hw/net: Fix read of uninitialized memory in ftgmac100


From: Stephen Longfield
Subject: Re: [PATCH] hw/net: Fix read of uninitialized memory in ftgmac100
Date: Wed, 21 Dec 2022 09:58:04 -0800

On Tue, Dec 20, 2022 at 11:30 PM Cédric Le Goater <clg@kaod.org> wrote:
>
> On 12/20/22 23:14, Stephen Longfield wrote:
> > With the `size += 4` before the call to `crc32`, the CRC calculation
> > would overrun the buffer. Size is used in the while loop starting on
> > line 1009 to determine how much data to write back, with the last
> > four bytes coming from `crc_ptr`, so do need to increase it, but should
> > do this after the computation.
> >
> > I'm unsure why this use of uninitialized memory in the CRC doesn't
> > result in CRC errors, but it seems clear to me that it should not be
> > included in the calculation.
> >
> > Signed-off-by: Stephen Longfield <slongfield@google.com>
> > Reviewed-by: Hao Wu <wuhaotsh@google.com>
>
>
> Reviewed-by: Cédric Le Goater <clg@kaod.org>
>
> I think imx_fec.c is impacted also.
>
> Thanks,
>
> C.
>

Thanks for pointing that out, looks to be exactly the same. I'll send
out a separate patch that fixes the issue in that file.

Best,

--Stephen

>
> > ---
> >   hw/net/ftgmac100.c | 4 ++--
> >   1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/hw/net/ftgmac100.c b/hw/net/ftgmac100.c
> > index 83ef0a783e..d3bf14be53 100644
> > --- a/hw/net/ftgmac100.c
> > +++ b/hw/net/ftgmac100.c
> > @@ -980,9 +980,9 @@ static ssize_t ftgmac100_receive(NetClientState *nc, 
> > const uint8_t *buf,
> >           return size;
> >       }
> >
> > -    /* 4 bytes for the CRC.  */
> > -    size += 4;
> >       crc = cpu_to_be32(crc32(~0, buf, size));
> > +    /* Increase size by 4, loop below reads the last 4 bytes from crc_ptr. 
> > */
> > +    size += 4;
> >       crc_ptr = (uint8_t *) &crc;
> >
> >       /* Huge frames are truncated.  */
> > --
> > 2.39.0.314.g84b9a713c41-goog
> >
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]