⬢ DragonFlyBSD Kernel Audit
DF-4754 / fix.diff
← back to finding ↓ download raw
--- a/sys/dev/virtual/amazon/ena/ena-com/ena_eth_com.c
+++ b/sys/dev/virtual/amazon/ena/ena-com/ena_eth_com.c
@@ -536,6 +536,11 @@
 	for (i = 0; i < nb_hw_desc; i++) {
 		cdesc = ena_com_rx_cdesc_idx_to_ptr(io_cq, cdesc_idx + i);
 
+		if (unlikely(cdesc->req_id >= io_cq->q_depth)) {
+			ena_trc_err("Invalid rx req id %d\n", cdesc->req_id);
+			return ENA_COM_INVAL;
+		}
+
 		ena_buf->len = cdesc->length;
 		ena_buf->req_id = cdesc->req_id;
 		ena_buf++;