diff --git a/services/param/linux/param_request.c b/services/param/linux/param_request.c index 5913482ba00d1daee7d11f55438f1d01e2b4b823..9b174da78b70ec421e844657f9e9de85757a45cc 100644 --- a/services/param/linux/param_request.c +++ b/services/param/linux/param_request.c @@ -273,3 +273,24 @@ int WatchParamCheck(const char *keyprefix) PARAM_CHECK(ret == 0, return ret, "Forbid to watcher parameter %s", keyprefix); return 0; } + +void ResetParamSecurityLabel(void) +{ +#ifdef RESET_CHILD_FOR_VERIFY + ParamWorkSpace *paramSpace = GetParamWorkSpace(); + PARAM_CHECK(paramSpace != NULL, return, "Invalid paramSpace"); +#if !(defined __LITEOS_A__ || defined __LITEOS_M__) + paramSpace->securityLabel.cred.pid = getpid(); + paramSpace->securityLabel.cred.uid = geteuid(); + paramSpace->securityLabel.cred.gid = getegid(); + paramSpace->flags |= WORKSPACE_FLAGS_NEED_ACCESS; +#endif +#endif + PARAM_LOGI("ResetParamSecurityLabel g_clientFd: %d ", g_clientFd); + pthread_mutex_lock(&g_clientMutex); + if (g_clientFd != INVALID_SOCKET) { + close(g_clientFd); + g_clientFd = INVALID_SOCKET; + } + pthread_mutex_unlock(&g_clientMutex); +} diff --git a/services/param/manager/param_manager.c b/services/param/manager/param_manager.c index f43c70eb2840f04814ba9e3623ed38cc229caf7b..0774a5996137749c098b35d88ddaba1323d3cc9f 100644 --- a/services/param/manager/param_manager.c +++ b/services/param/manager/param_manager.c @@ -623,18 +623,6 @@ INIT_LOCAL_API int CheckParamName(const char *name, int info) return 0; } -void ResetParamSecurityLabel(void) -{ - ParamWorkSpace *paramSpace = GetParamWorkSpace(); - PARAM_CHECK(paramSpace != NULL, return, "Invalid paramSpace"); -#if !(defined __LITEOS_A__ || defined __LITEOS_M__) - paramSpace->securityLabel.cred.pid = getpid(); - paramSpace->securityLabel.cred.uid = geteuid(); - paramSpace->securityLabel.cred.gid = getegid(); - paramSpace->flags |= WORKSPACE_FLAGS_NEED_ACCESS; -#endif -} - static int CheckParamPermission_(WorkSpace **workspace, ParamTrieNode **node, const ParamSecurityLabel *srcLabel, const char *name, uint32_t mode) { diff --git a/test/unittest/param/param_unittest.cpp b/test/unittest/param/param_unittest.cpp index ef3ae9fb3df22f768a4971d5ecc0c8202e8958d2..0349aba6f4397efe5ac0ed6c4c31cf9c5a9b8030 100644 --- a/test/unittest/param/param_unittest.cpp +++ b/test/unittest/param/param_unittest.cpp @@ -158,7 +158,9 @@ public: // 添加一个label,完全匹配 int TestAddSecurityLabel4() { +#if !(defined __LITEOS_A__ || defined __LITEOS_M__) ResetParamSecurityLabel(); +#endif GetParamSecurityLabel()->cred.gid = 9999; // 9999 test gid const char *name = "label4.test.aaa.bbb.ccc.dddd.eee"; const char *value = "2001";