From e6f37443097d28ab5aabc49a52b4fa6768049169 Mon Sep 17 00:00:00 2001 From: yieux Date: Wed, 8 Nov 2023 18:08:01 +0800 Subject: [PATCH] =?UTF-8?q?bug=20fix=20=E5=BD=93=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89workflow=EF=BC=8C=E4=BD=86=E5=8D=B4=E6=9C=AA=E6=98=8E?= =?UTF-8?q?=E7=A1=AE=E5=AE=9A=E4=B9=89response=5Farray=E6=97=B6=E3=80=82?= =?UTF-8?q?=E6=B3=A8=E5=86=8C=E6=B5=81=E7=A8=8Bkmalloc=E5=93=8D=E5=BA=94?= =?UTF-8?q?=E6=95=B0=E7=BB=84=E5=B9=B6=E5=A1=AB=E5=85=85=E4=B8=BA=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E5=93=8D=E5=BA=94=E6=95=B0=E7=BB=84=E5=90=8E=EF=BC=8C?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=E5=86=99=E5=9B=9E=E5=88=B0workflow=E7=BB=93?= =?UTF-8?q?=E6=9E=84=E4=BD=93=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cases/memory_corruption/secDetector_memory_corruption.c | 2 +- kerneldriver/core/secDetector_manager.c | 1 + kerneldriver/core/secDetector_workflow.c | 5 ++++- kerneldriver/include/secDetector_response_type.h | 2 +- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/kerneldriver/cases/memory_corruption/secDetector_memory_corruption.c b/kerneldriver/cases/memory_corruption/secDetector_memory_corruption.c index 7432edc..7dc3193 100644 --- a/kerneldriver/cases/memory_corruption/secDetector_memory_corruption.c +++ b/kerneldriver/cases/memory_corruption/secDetector_memory_corruption.c @@ -13,7 +13,7 @@ #include "secDetector_mc_kmodule_list.h" -#define TIME_INTERVAL 10000 +#define TIME_INTERVAL 100 DEFINE_MUTEX(case_mc_mutex); diff --git a/kerneldriver/core/secDetector_manager.c b/kerneldriver/core/secDetector_manager.c index 27c9ace..692222f 100644 --- a/kerneldriver/core/secDetector_manager.c +++ b/kerneldriver/core/secDetector_manager.c @@ -91,6 +91,7 @@ static void secDetector_collect_analyze_response_unit_padding( sr[i].response_type = i; sr[i].response_func = response_units[i]; } + wf->response_array = sr; } else { // 自定义response list for (i = 0; i < wf->response_array_len; i++) { if (sr[i].response_type < RESPONSE_CUSTOMIZATION) diff --git a/kerneldriver/core/secDetector_workflow.c b/kerneldriver/core/secDetector_workflow.c index 630a5b0..2a6fb9d 100644 --- a/kerneldriver/core/secDetector_workflow.c +++ b/kerneldriver/core/secDetector_workflow.c @@ -33,7 +33,10 @@ void preset_workflow(secDetector_workflow_t *wf) repsonse_id = wf->analyze_func(&collect_data_list, &(wf->analyze_status), &rd); - wf->response_array[repsonse_id].response_func(&rd); + if (repsonse_id >= 0) { + wf->response_array[repsonse_id].response_func(&rd); + } + free_collect_data_list(&collect_data_list); free_response_data_no_rd(repsonse_id, &rd); } \ No newline at end of file diff --git a/kerneldriver/include/secDetector_response_type.h b/kerneldriver/include/secDetector_response_type.h index 91dbd1a..d8c1e67 100644 --- a/kerneldriver/include/secDetector_response_type.h +++ b/kerneldriver/include/secDetector_response_type.h @@ -12,8 +12,8 @@ enum RESPONSE_TYPE { RESPONSE_OK, RESPONSE_REPORT, - RESPONSE_REJECT, RESPONSE_KILL, + RESPONSE_REJECT, RESPONSE_CUSTOMIZATION, NR_RESPONSE, }; -- Gitee