소스 검색

msm: ipa3: fix pointer arithmetic to avoid out-of-bound

When offset gets added to base of the array, it returns
offset plus the number equal to size of the whole array.
So, correct it by passing the address of offset element
in the array.

Change-Id: I8a087ca277bdc476674c7221b5fc0920e6986570
Jagadeesh Ponduru 2 년 전
부모
커밋
757a544d71
1개의 변경된 파일2개의 추가작업 그리고 2개의 파일을 삭제
  1. 2 2
      drivers/platform/msm/ipa/ipa_v3/ipa_utils.c

+ 2 - 2
drivers/platform/msm/ipa/ipa_v3/ipa_utils.c

@@ -10178,7 +10178,7 @@ void ipa3_counter_remove_hdl(int hdl)
 	offset = counter->hw_counter.start_id - 1;
 	if (offset >= 0 && (offset + counter->hw_counter.num_counters)
 		< IPA_FLT_RT_HW_COUNTER) {
-		memset(&ipa3_ctx->flt_rt_counters.used_hw + offset,
+		memset(&ipa3_ctx->flt_rt_counters.used_hw[offset],
 			   0, counter->hw_counter.num_counters * sizeof(bool));
 	} else {
 		IPAERR_RL("unexpected hdl %d\n", hdl);
@@ -10187,7 +10187,7 @@ void ipa3_counter_remove_hdl(int hdl)
 	offset = counter->sw_counter.start_id - 1 - IPA_FLT_RT_HW_COUNTER;
 	if (offset >= 0 && (offset + counter->sw_counter.num_counters)
 		< IPA_FLT_RT_SW_COUNTER) {
-		memset(&ipa3_ctx->flt_rt_counters.used_sw + offset,
+		memset(&ipa3_ctx->flt_rt_counters.used_sw[offset],
 		   0, counter->sw_counter.num_counters * sizeof(bool));
 	} else {
 		IPAERR_RL("unexpected hdl %d\n", hdl);