[FPS-2629]tof:fix crash issue
 ###%%%comment:tof:fix crash issue
 ###%%%bug number:FPS-2629
 ###%%%product name:FP Spring
 ###%%%Root Cause:tof:fix crash issue
 ###%%%Root Cause Detail:tof:fix crash issue
 ###%%%Test_Suggestion:test camera
 ###%%%Test_Report:PASS
 ###%%%Bug category:Platform
 ###%%%Module_Impact:NO
 ###%%%Solution:NO
 ###%%%Pre_build:YES
 ###%%%CodeReviewModule:Camera-system
 ###%%%Highlight:NO
 ###%%%author email:jinghuang@tcl.com

Change-Id: Iefc918bdc95197568e531999f85d333d3715ec73
diff --git a/drivers/input/misc/vl53L1/protected/src/vl53l1_hist_algos_gen3.c b/drivers/input/misc/vl53L1/protected/src/vl53l1_hist_algos_gen3.c
index c58b320..76289c1 100644
--- a/drivers/input/misc/vl53L1/protected/src/vl53l1_hist_algos_gen3.c
+++ b/drivers/input/misc/vl53L1/protected/src/vl53l1_hist_algos_gen3.c
@@ -309,6 +309,11 @@ VL53L1_Error VL53L1_f_021(
 
 	LOG_FUNCTION_START("");
 
+        //add by jinghuang for crash
+        if(palgo==NULL){
+            printk("VL53L1_f_021:palgo is null!");
+            return status;
+        }
 
 
 	max_filter_half_width = palgo->VL53L1_p_031 - 1;
@@ -323,8 +328,15 @@ VL53L1_Error VL53L1_f_021(
 
 		i =  blb      % palgo->VL53L1_p_031;
 		j = (blb + 1) % palgo->VL53L1_p_031;
-
-
+             //add by jinghuang for crash
+            if(i>=VL53L1_HISTOGRAM_BUFFER_SIZE){
+                i=VL53L1_HISTOGRAM_BUFFER_SIZE-1;
+                printk("VL53L1_f_021:buff i is overflow!");
+            }
+            if(j>=VL53L1_HISTOGRAM_BUFFER_SIZE){
+                j=VL53L1_HISTOGRAM_BUFFER_SIZE-1;
+                printk("VL53L1_f_021:buff j is overflow!");
+            }
 
 		if (i < palgo->VL53L1_p_024 &&
 				j < palgo->VL53L1_p_024) {
@@ -335,9 +347,14 @@ VL53L1_Error VL53L1_f_021(
 					palgo->VL53L1_p_047[j] > 0) {
 
 				pulse_no = palgo->VL53L1_p_047[j] - 1;
-				pdata   = &(palgo->VL53L1_p_002[pulse_no]);
+                                //add by jinghuang for crash
+                                if(pulse_no >=VL53L1_D_001){
+                                    printk("VL53L1_f_021:buff j pulse_no is overflow!");
+                                    pulse_no=VL53L1_D_001-1;
+                                }
 
 				if (pulse_no < palgo->VL53L1_p_050) {
+                                        pdata = &(palgo->VL53L1_p_002[pulse_no]);
 					pdata->VL53L1_p_015 = blb;
 					pdata->VL53L1_p_022    = blb + 1;
 					pdata->VL53L1_p_025   = 0xFF;
@@ -352,10 +369,14 @@ VL53L1_Error VL53L1_f_021(
 				&& palgo->VL53L1_p_047[j] == 0) {
 
 				pulse_no = palgo->VL53L1_p_047[i] - 1;
-				pdata   = &(palgo->VL53L1_p_002[pulse_no]);
+                                //add by jinghuang for crash
+                                if(pulse_no >=VL53L1_D_001){
+                                    printk("VL53L1_f_021:buff i pulse_no is overflow!");
+                                    pulse_no=VL53L1_D_001-1;
+                                }
 
 				if (pulse_no < palgo->VL53L1_p_050) {
-
+                                        pdata = &(palgo->VL53L1_p_002[pulse_no]);
 					pdata->VL53L1_p_026    = blb;
 					pdata->VL53L1_p_016  = blb + 1;