From f6a26ea0759f36ebcaebe05d4d24c7234a110c63 Mon Sep 17 00:00:00 2001 From: caixiaomeng Date: Fri, 11 Oct 2024 12:12:53 +0800 Subject: [PATCH] fix xalarm_Report function not refuse alarm msg exceeds maximum --- src/libso/xalarm/register_xalarm.c | 5 +++++ src/python/xalarm/register_xalarm.py | 6 +++--- src/python/xalarm/sentry_notify.py | 4 ++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/libso/xalarm/register_xalarm.c b/src/libso/xalarm/register_xalarm.c index 5aff2bc..952a28b 100644 --- a/src/libso/xalarm/register_xalarm.c +++ b/src/libso/xalarm/register_xalarm.c @@ -339,6 +339,11 @@ int xalarm_Report(unsigned short usAlarmId, unsigned char ucAlarmLevel, return -1; } + if (pucParas == NULL || (int)strlen(pucParas) > MAX_PARAS_LEN) { + fprintf(stderr, "%s: alarm info invalid\n", __func__); + return -1; + } + if (memset(&info, 0, sizeof(struct alarm_info)) == NULL) { fprintf(stderr, "%s: memset info failed, ret: %d\n", __func__, ret); return -1; diff --git a/src/python/xalarm/register_xalarm.py b/src/python/xalarm/register_xalarm.py index edd9994..39623bd 100644 --- a/src/python/xalarm/register_xalarm.py +++ b/src/python/xalarm/register_xalarm.py @@ -45,7 +45,7 @@ class AlarmRegister: return False if self.socket is None: - sys.stderr.write("check_params: scoket create failed\n") + sys.stderr.write("check_params: socket create failed\n") return False return True @@ -151,10 +151,10 @@ def xalarm_unregister(clientId: int) -> None: def xalarm_upgrade(clientId: int, id_filter: list) -> None: global ALARM_REGISTER_INFO if clientId < 0: - sys.stderr.write("xalarm_unregister: invalid client\n") + sys.stderr.write("xalarm_upgrade: invalid client\n") return if ALARM_REGISTER_INFO is None: - sys.stderr.write("xalarm_unregister: alarm has not registered\n") + sys.stderr.write("xalarm_upgrade: alarm has not registered\n") return ALARM_REGISTER_INFO.id_filter = id_filter diff --git a/src/python/xalarm/sentry_notify.py b/src/python/xalarm/sentry_notify.py index c763a24..5838473 100644 --- a/src/python/xalarm/sentry_notify.py +++ b/src/python/xalarm/sentry_notify.py @@ -27,11 +27,11 @@ ALARM_SOCKET_PERMISSION = 0o700 def check_params(alarm_id, alarm_level, alarm_type, puc_paras) -> bool: if not os.path.exists(DIR_XALARM): - sys.stderr.write(f"check_params: {DIR_XALARM} not exist, failed") + sys.stderr.write(f"check_params: {DIR_XALARM} not exist, failed\n") return False if not os.path.exists(PATH_REPORT_ALARM): - sys.stderr.write(f"check_params: {PATH_REPORT_ALARM} not exist, failed") + sys.stderr.write(f"check_params: {PATH_REPORT_ALARM} not exist, failed\n") return False if (alarm_id < MIN_ALARM_ID or alarm_id > MAX_ALARM_ID or -- 2.27.0