From: Soumyajyotii Ssarkar Date: Thu, 6 Nov 2025 15:36:24 +0000 (+0530) Subject: i82596: Adding proper break-statement functionality in RX functions X-Git-Tag: v10.2.0-rc1~14^2~3 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=54c1e9cdeee71b84f1e78d01f3e083cf5158bd08;p=thirdparty%2Fqemu.git i82596: Adding proper break-statement functionality in RX functions Fix coverty reported logic error CID 1642873. The initial issue was the break statement exited out of the for loop unconditionally. Now, the break only happens if rfd is null, out_of_resources or bytes_copied < payload_size. Reported-by: Peter Maydell Signed-off-by: Soumyajyotii Ssarkar Reviewed-by: Helge Deller Signed-off-by: Helge Deller --- diff --git a/hw/net/i82596.c b/hw/net/i82596.c index fb6b54fd71..af1abd4996 100644 --- a/hw/net/i82596.c +++ b/hw/net/i82596.c @@ -1092,6 +1092,7 @@ static ssize_t i82596_receive_packet(I82596State *s, const uint8_t *buf, rx_status |= RFD_STATUS_TRUNC | RFD_STATUS_NOBUFS; i82596_record_error(s, RFD_STATUS_NOBUFS, false); packet_completed = true; + break; } else { hwaddr remaining_rbd = I596_NULL; size_t rbd_bytes = i82596_rx_copy_to_rbds( @@ -1118,17 +1119,18 @@ static ssize_t i82596_receive_packet(I82596State *s, const uint8_t *buf, i82596_record_error(s, RFD_STATUS_NOBUFS, false); rx_status |= RFD_STATUS_TRUNC | RFD_STATUS_NOBUFS; packet_completed = true; + break; } if (bytes_copied < payload_size) { trace_i82596_rx_incomplete(bytes_copied, payload_size); rx_status |= RFD_STATUS_TRUNC; packet_completed = true; + break; } } } } - break; } while (bytes_copied < payload_size);