diff --git a/interfaces/innerkits/hookmgr/hookmgr.c b/interfaces/innerkits/hookmgr/hookmgr.c index fb941d19776b1fa811f81db010a33e23247f5da7..9b04d4a0342f5bc581f9f88b6ba802abd4fa0900 100644 --- a/interfaces/innerkits/hookmgr/hookmgr.c +++ b/interfaces/innerkits/hookmgr/hookmgr.c @@ -262,7 +262,7 @@ static int hookExecutionProc(ListNode *node, void *cookie) */ int HookMgrExecute(HOOK_MGR *hookMgr, int stage, void *executionContext, const HOOK_EXEC_OPTIONS *options) { - int flags; + unsigned int flags; HOOK_STAGE *stageItem; HOOK_EXECUTION_ARGS args; @@ -276,7 +276,7 @@ int HookMgrExecute(HOOK_MGR *hookMgr, int stage, void *executionContext, const H flags = 0; if (options != NULL) { - flags = options->flags; + flags = (unsigned int)(options->flags); } args.executionContext = executionContext; diff --git a/interfaces/innerkits/include/syspara/parameter.h b/interfaces/innerkits/include/syspara/parameter.h index 519764caee51e9b8f16ae599ab98de12384eb7a7..0f3c1cff309a9012576fff4cffe6b6af25969489 100755 --- a/interfaces/innerkits/include/syspara/parameter.h +++ b/interfaces/innerkits/include/syspara/parameter.h @@ -27,6 +27,7 @@ extern "C" { #define PARAM_NAME_LEN_MAX 96 #define OS_FULL_NAME_LEN 128 #define VERSION_ID_MAX_LEN 256 +#define PARAM_BUFFER_MAX (0x01 << 16) static const char EMPTY_STR[] = { "" }; diff --git a/interfaces/innerkits/syspara/param_comm.c b/interfaces/innerkits/syspara/param_comm.c index a7f3135eae5c0e773b3c084f0cb8fd15511bf7a8..5812ae6044d0304fcade09674b23513b191d04bf 100644 --- a/interfaces/innerkits/syspara/param_comm.c +++ b/interfaces/innerkits/syspara/param_comm.c @@ -42,7 +42,7 @@ INIT_LOCAL_API int IsValidParamValue(const char *value, uint32_t len) INIT_LOCAL_API int GetParameter_(const char *key, const char *def, char *value, uint32_t len) { - if ((key == NULL) || (value == NULL)) { + if ((key == NULL) || (value == NULL) || (len > (uint32_t)PARAM_BUFFER_MAX)) { return EC_INVALID; } uint32_t size = len; diff --git a/services/include/list.h b/services/include/list.h index 38e423dfb750f295007bd0821a1a21fa7c756a4d..43bfc6c8e9833dd51114fbfc1ff5e685ecb72021 100755 --- a/services/include/list.h +++ b/services/include/list.h @@ -169,7 +169,7 @@ ListNode *OH_ListFind(const ListNode *head, void *data, ListTraversalProc compar * @return return -1 for invalid input arguments. * when TRAVERSE_STOP_WHEN_ERROR is specified, it will return errors from traversalProc */ -int OH_ListTraversal(ListNode *head, void *data, ListTraversalProc traversalProc, int flags); +int OH_ListTraversal(ListNode *head, void *data, ListTraversalProc traversalProc, unsigned int flags); /** * @brief ListNode destroy function prototype diff --git a/services/utils/list.c b/services/utils/list.c index 7f5dd90db60338955568717233f2500695fc8cf7..bd354a3d7c2e156ca8748b3e6648f1672e3874f9 100644 --- a/services/utils/list.c +++ b/services/utils/list.c @@ -151,7 +151,7 @@ ListNode *OH_ListFind(const ListNode *head, void *data, ListTraversalProc compar * @return return -1 for invalid input arguments. * when TRAVERSE_STOP_WHEN_ERROR is specified, it will return errors from traversalProc */ -int OH_ListTraversal(ListNode *head, void *data, ListTraversalProc traversalProc, int flags) +int OH_ListTraversal(ListNode *head, void *data, ListTraversalProc traversalProc, unsigned int flags) { int ret; ListNode *match;