Переглянути джерело

qcacmn: fix out-of-bound issue in scattered list setup

Fix out-of-bound issue in scattered list setup.

Change-Id: I8a0c419227de3613d70229e1b6364d7e46dfbf7b
CRs-Fixed: 3664082
(cherry picked from commit 754a729a834a4a1661afaf38ca19be3161fcfd6f)
Venkateswara Naralasetty 1 рік тому
батько
коміт
958e0db9af
1 змінених файлів з 5 додано та 2 видалено
  1. 5 2
      dp/wifi3.0/dp_main.c

+ 5 - 2
dp/wifi3.0/dp_main.c

@@ -2697,8 +2697,11 @@ void dp_link_desc_ring_replenish(struct dp_soc *soc, uint32_t mac_id)
 			} else {
 				rem_entries = num_entries_per_buf;
 				scatter_buf_num++;
-				if (scatter_buf_num >= num_scatter_bufs)
+				if (scatter_buf_num >= num_scatter_bufs) {
+					scatter_buf_num--;
 					break;
+				}
+
 				scatter_buf_ptr = (uint8_t *)
 					(soc->wbm_idle_scatter_buf_base_vaddr[
 					 scatter_buf_num]);
@@ -2713,7 +2716,7 @@ void dp_link_desc_ring_replenish(struct dp_soc *soc, uint32_t mac_id)
 			num_scatter_bufs, soc->wbm_idle_scatter_buf_size,
 			(uint32_t)(scatter_buf_ptr -
 			(uint8_t *)(soc->wbm_idle_scatter_buf_base_vaddr[
-			scatter_buf_num-1])), total_link_descs);
+			scatter_buf_num])), total_link_descs);
 	}
 }