mirror of
https://github.com/xemu-project/xemu.git
synced 2026-07-11 01:24:41 +02:00
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 <peter.maydell@linaro.org> Signed-off-by: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com> Reviewed-by: Helge Deller <deller@gmx.de> Signed-off-by: Helge Deller <deller@gmx.de>
This commit is contained in:
committed by
Helge Deller
parent
343166a084
commit
54c1e9cdee
+3
-1
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user