!77 add parameter validation
From: @boluo56 Reviewed-by: @hubin95 Signed-off-by: @hubin95
This commit is contained in:
commit
eba0bbc58d
104
add-parameter-time_range-alarm_id-and-alarm_clear_ti.patch
Normal file
104
add-parameter-time_range-alarm_id-and-alarm_clear_ti.patch
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
From 0a4bd4097690bee7250676a0c262a830c7a8fbcf Mon Sep 17 00:00:00 2001
|
||||||
|
From: jinsaihang <jinsaihang@h-partners.com>
|
||||||
|
Date: Fri, 11 Oct 2024 15:35:43 +0800
|
||||||
|
Subject: [PATCH] add parameter time_range ,alarm_id and alarm_clear_time
|
||||||
|
validation
|
||||||
|
|
||||||
|
Signed-off-by: jinsaihang <jinsaihang@h-partners.com>
|
||||||
|
---
|
||||||
|
sysSentry-1.0.2/src/python/syssentry/alarm.py | 19 +++++++++++++++++++
|
||||||
|
.../src/python/syssentry/load_mods.py | 6 ++----
|
||||||
|
.../src/python/syssentry/sentryctl | 4 +++-
|
||||||
|
3 files changed, 24 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/python/syssentry/alarm.py b/src/python/syssentry/alarm.py
|
||||||
|
index d5337d3..43c1065 100644
|
||||||
|
--- a/src/python/syssentry/alarm.py
|
||||||
|
+++ b/src/python/syssentry/alarm.py
|
||||||
|
@@ -18,6 +18,7 @@ from datetime import datetime
|
||||||
|
import time
|
||||||
|
import logging
|
||||||
|
import json
|
||||||
|
+import sys
|
||||||
|
|
||||||
|
from xalarm.register_xalarm import xalarm_register,xalarm_getid,xalarm_getlevel,xalarm_gettype,xalarm_gettime,xalarm_getdesc
|
||||||
|
from xalarm.xalarm_api import Xalarm
|
||||||
|
@@ -41,9 +42,15 @@ id_base = 1001
|
||||||
|
clientId = -1
|
||||||
|
|
||||||
|
MILLISECONDS_UNIT_SECONDS = 1000
|
||||||
|
+MAX_NUM_OF_ALARM_ID = 128
|
||||||
|
+MIN_ALARM_ID = 1001
|
||||||
|
+MAX_ALARM_ID = (MIN_ALARM_ID + MAX_NUM_OF_ALARM_ID - 1)
|
||||||
|
|
||||||
|
def update_alarm_list(alarm_info: Xalarm):
|
||||||
|
alarm_id = xalarm_getid(alarm_info)
|
||||||
|
+ if alarm_id < MIN_ALARM_ID or alarm_id > MAX_ALARM_ID:
|
||||||
|
+ logging.warnning(f"Invalid alarm_id {alarm_id}")
|
||||||
|
+ return
|
||||||
|
timestamp = xalarm_gettime(alarm_info)
|
||||||
|
if not timestamp:
|
||||||
|
logging.error("Retrieve timestamp failed")
|
||||||
|
@@ -77,7 +84,19 @@ def alarm_register():
|
||||||
|
logging.info(f"alarm_register: {task_name} is registered")
|
||||||
|
task = TasksMap.tasks_dict[task_type][task_name]
|
||||||
|
alarm_id = task.alarm_id
|
||||||
|
+ if alarm_id < MIN_ALARM_ID or alarm_id > MAX_ALARM_ID:
|
||||||
|
+ logging.warnning(f"Invalid alarm_id {alarm_id}: ignore {task_name} alarm")
|
||||||
|
+ continue
|
||||||
|
alarm_clear_time = task.alarm_clear_time
|
||||||
|
+ try:
|
||||||
|
+ alarm_clear_time = int(alarm_clear_time)
|
||||||
|
+ if alarm_clear_time <= 0:
|
||||||
|
+ raise ValueError("Not a positive integer")
|
||||||
|
+ if alarm_clear_time > sys.maxsize:
|
||||||
|
+ raise ValueError("Exceeds maximum value for int")
|
||||||
|
+ except (ValueError, OverflowError, TypeError) as e:
|
||||||
|
+ logging.warnning(f"Invalid alarm_clear_time {alarm_clear_time}: ignore {task_name} alarm")
|
||||||
|
+ continue
|
||||||
|
alarm_list_dict[alarm_id] = []
|
||||||
|
task_alarm_id_dict[task_name] = alarm_id
|
||||||
|
if alarm_id not in alarm_id_clear_time_dict:
|
||||||
|
diff --git a/src/python/syssentry/load_mods.py b/src/python/syssentry/load_mods.py
|
||||||
|
index ae05e57..7daf17d 100644
|
||||||
|
--- a/src/python/syssentry/load_mods.py
|
||||||
|
+++ b/src/python/syssentry/load_mods.py
|
||||||
|
@@ -203,11 +203,9 @@ def parse_mod_conf(mod_name, mod_conf):
|
||||||
|
if not (MIN_ALARM_ID <= task.alarm_id <= MAX_ALARM_ID):
|
||||||
|
raise ValueError("Invalid alarm_id")
|
||||||
|
except ValueError:
|
||||||
|
- task.alarm_id = -1
|
||||||
|
- logging.warning("Invalid alarm_id, set to -1")
|
||||||
|
+ logging.warning("Invalid alarm_id")
|
||||||
|
except configparser.NoOptionError:
|
||||||
|
- task.alarm_id = -1
|
||||||
|
- logging.warning("Unset alarm_id and alarm_clear_time, use -1 and 15s as default")
|
||||||
|
+ logging.warning("Unset alarm_clear_time, use 15s as default")
|
||||||
|
|
||||||
|
if CONF_ONSTART in mod_conf.options(CONF_TASK):
|
||||||
|
is_onstart = (mod_conf.get(CONF_TASK, CONF_ONSTART) == 'yes')
|
||||||
|
diff --git a/src/python/syssentry/sentryctl b/src/python/syssentry/sentryctl
|
||||||
|
index 3de93d0..c2e3cef 100644
|
||||||
|
--- a/src/python/syssentry/sentryctl
|
||||||
|
+++ b/src/python/syssentry/sentryctl
|
||||||
|
@@ -136,7 +136,7 @@ if __name__ == '__main__':
|
||||||
|
parser_get_result.add_argument('task_name')
|
||||||
|
parser_get_alarm = subparsers.add_parser('get_alarm', help='get task alarm')
|
||||||
|
parser_get_alarm.add_argument('task_name')
|
||||||
|
- parser_get_alarm.add_argument('-s', '--time_range', type=str, default=DEFAULT_ALARM_TIME_RANGE, help='Specified time range')
|
||||||
|
+ parser_get_alarm.add_argument('-s', '--time_range', type=int, default=DEFAULT_ALARM_TIME_RANGE, help='Specified time range')
|
||||||
|
parser_get_alarm.add_argument('-d', '--detailed', action='store_true', help='Print Detailed Information')
|
||||||
|
parser_list = subparsers.add_parser('list', help='show all loaded task mod')
|
||||||
|
|
||||||
|
@@ -153,6 +153,8 @@ if __name__ == '__main__':
|
||||||
|
elif client_args.cmd_type == 'get_result':
|
||||||
|
req_msg_struct = {"type": "get_result", "data": client_args.task_name}
|
||||||
|
elif client_args.cmd_type == 'get_alarm':
|
||||||
|
+ if not isinstance(client_args.time_range, int) or client_args.time_range <= 0:
|
||||||
|
+ print(f"time_range is not a positive integer: {client_args.time_range}")
|
||||||
|
req_msg_struct = {
|
||||||
|
"type": "get_alarm",
|
||||||
|
"data": {
|
||||||
|
--
|
||||||
|
2.27.0
|
||||||
|
|
||||||
@ -4,7 +4,7 @@
|
|||||||
Summary: System Inspection Framework
|
Summary: System Inspection Framework
|
||||||
Name: sysSentry
|
Name: sysSentry
|
||||||
Version: 1.0.2
|
Version: 1.0.2
|
||||||
Release: 31
|
Release: 32
|
||||||
License: Mulan PSL v2
|
License: Mulan PSL v2
|
||||||
Group: System Environment/Daemons
|
Group: System Environment/Daemons
|
||||||
Source0: https://gitee.com/openeuler/sysSentry/releases/download/v%{version}/%{name}-%{version}.tar.gz
|
Source0: https://gitee.com/openeuler/sysSentry/releases/download/v%{version}/%{name}-%{version}.tar.gz
|
||||||
@ -45,6 +45,7 @@ Patch32: ai_block_io-adapt-alarm-module.patch
|
|||||||
Patch33: add-log-for-improving-maintainability.patch
|
Patch33: add-log-for-improving-maintainability.patch
|
||||||
Patch34: add-get_disk_type-and-fix-some-bugs.patch
|
Patch34: add-get_disk_type-and-fix-some-bugs.patch
|
||||||
Patch35: diff-disk-type-use-diff-config.patch
|
Patch35: diff-disk-type-use-diff-config.patch
|
||||||
|
Patch36: add-parameter-time_range-alarm_id-and-alarm_clear_ti.patch
|
||||||
|
|
||||||
BuildRequires: cmake gcc-c++
|
BuildRequires: cmake gcc-c++
|
||||||
BuildRequires: python3 python3-setuptools
|
BuildRequires: python3 python3-setuptools
|
||||||
@ -289,6 +290,12 @@ rm -rf %{buildroot}
|
|||||||
%attr(0550,root,root) %{python3_sitelib}/sentryPlugins/ai_block_io
|
%attr(0550,root,root) %{python3_sitelib}/sentryPlugins/ai_block_io
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Oct 11 2024 jinsaihang <jinsaihang@h-partners.com> - 1.0.2-32
|
||||||
|
- Type:bugfix
|
||||||
|
- CVE:NA
|
||||||
|
- SUG:NA
|
||||||
|
- DESC:add parameter validation
|
||||||
|
|
||||||
* Fri Oct 11 2024 gaoruoshu <gaoruoshu@huawei.com> - 1.0.2-31
|
* Fri Oct 11 2024 gaoruoshu <gaoruoshu@huawei.com> - 1.0.2-31
|
||||||
- Type:requirement
|
- Type:requirement
|
||||||
- CVE:NA
|
- CVE:NA
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user