[PATCH 3/3] net: emaclite: fix handling for IP packets with specific lengths

Michal Simek michal.simek at amd.com
Mon Aug 8 09:54:59 CEST 2022



On 8/6/22 19:35, Ramon Fried wrote:
> On Wed, Jul 13, 2022 at 5:02 PM Samuel Obuch <samuel.obuch at codasip.com> wrote:
>>
>> The maximum length is capped similarly to the emaclite_send function.
>> Avoid integer underflow for values of ip->ip_len < 30, the minimum
>> length of an IP packet is 21 bytes.
>>
>> Signed-off-by: Samuel Obuch <samuel.obuch at codasip.com>
>> ---
>>   drivers/net/xilinx_emaclite.c | 4 +++-
>>   1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/net/xilinx_emaclite.c b/drivers/net/xilinx_emaclite.c
>> index de7a2dee0b..21c450ec46 100644
>> --- a/drivers/net/xilinx_emaclite.c
>> +++ b/drivers/net/xilinx_emaclite.c
>> @@ -518,6 +518,8 @@ try_again:
>>                  length = ntohs(ip->ip_len);
>>                  length += ETHER_HDR_SIZE + ETH_FCS_LEN;
>>                  debug("IP Packet %x\n", length);
>> +               if (length > PKTSIZE)
>> +                       length = PKTSIZE;
>>                  break;
>>          default:
>>                  debug("Other Packet\n");
>> @@ -526,7 +528,7 @@ try_again:
>>          }
>>
>>          /* Read the rest of the packet which is longer then first read */
>> -       if (length != first_read)
>> +       if (length > first_read)
>>                  xemaclite_alignedread(addr + first_read,
>>                                        etherrxbuff + first_read,
>>                                        length - first_read);
>> --
>> 2.31.1
>>
> + Michal

This looks good.
Reviewed-by: Michal Simek <michal.simek at amd.com>

Thanks,
Michal


More information about the U-Boot mailing list