diff --git a/services/state/src/dinput_state.cpp b/services/state/src/dinput_state.cpp index 023ae13..f17f0a3 100644 --- a/services/state/src/dinput_state.cpp +++ b/services/state/src/dinput_state.cpp @@ -168,7 +168,7 @@ void DInputState::CheckKeyboardState(std::string &dhid, std::string &keyboardNod { DHLOGI("CheckKeyboardState enter, dhid %s, keyboardNodePath %s.", GetAnonyString(dhid).c_str(), keyboardNodePath.c_str()); - char* canonicalPath = new char(PATH_MAX); + char canonicalPath[PATH_MAX] = {0x00}; if (keyboardNodePath.length() == 0 || keyboardNodePath.length() >= PATH_MAX || realpath(keyboardNodePath.c_str(), canonicalPath) == nullptr) { DHLOGE("keyboard Nodepath check fail, error path: %s", keyboardNodePath.c_str()); @@ -208,7 +208,7 @@ void DInputState::CheckMouseKeyState(const int32_t &sessionId, const std::string { DHLOGI("CheckMouseKeyState enter, mouseNodePath %s, mouseNodeDhId %s, sessionId %d.", mouseNodePath.c_str(), GetAnonyString(mouseNodeDhId).c_str(), sessionId); - char* canonicalPath = new char(PATH_MAX); + char canonicalPath[PATH_MAX] = {0x00}; if (mouseNodePath.length() == 0 || mouseNodePath.length() > PATH_MAX || realpath(mouseNodePath.c_str(), canonicalPath) == nullptr) { DHLOGE("mouse Nodepath check fail, error path: %s", mouseNodePath.c_str()); diff --git a/utils/src/dinput_utils_tool.cpp b/utils/src/dinput_utils_tool.cpp index edbd4e0..bb6db41 100644 --- a/utils/src/dinput_utils_tool.cpp +++ b/utils/src/dinput_utils_tool.cpp @@ -327,8 +327,8 @@ void StringSplitToVector(const std::string& str, const char split, std::vector PATH_MAX || + char canonicalDevicePath[PATH_MAX] = {0x00}; + if (devicePath.length() == 0 || devicePath.length() >= PATH_MAX || realpath(devicePath.c_str(), canonicalDevicePath) == nullptr) { DHLOGE("path check fail, error path: %s", devicePath.c_str()); return -1;