diff --git a/services/distributedhardwarefwkserviceimpl/src/componentloader/component_loader.cpp b/services/distributedhardwarefwkserviceimpl/src/componentloader/component_loader.cpp index 14e03e3eac2fa8bf09537981880324aa1ddfc2e4..3f03d718055cc526316a4f6ce2bb6b1c99bb7b88 100644 --- a/services/distributedhardwarefwkserviceimpl/src/componentloader/component_loader.cpp +++ b/services/distributedhardwarefwkserviceimpl/src/componentloader/component_loader.cpp @@ -42,6 +42,11 @@ const std::string DEFAULT_SOURCE_LOC = ""; const std::string DEFAULT_SINK_LOC = ""; const std::string DEFAULT_TYPE = "UNKNOWN"; const std::string DEFAULT_VERSION = "1.0"; +#ifdef __LP64__ +const std::string LIB_LOAD_PATH = "/system/lib64/"; +#else +const std::string LIB_LOAD_PATH = "/system/lib/"; +#endif } std::map g_mapDhTypeName = { { "UNKNOWN", DHType::UNKNOWN }, @@ -131,7 +136,8 @@ void *ComponentLoader::GetHandler(const std::string &soName) return nullptr; } char path[PATH_MAX + 1] = {0x00}; - if (soName.length() == 0 || soName.length() > PATH_MAX || realpath(soName.c_str(), path) == nullptr) { + if (soName.length() == 0 || (LIB_LOAD_PATH.length() + soName.length()) > PATH_MAX || + realpath((LIB_LOAD_PATH + soName).c_str(), path) == nullptr) { DHLOGE("File canonicalization failed"); return nullptr; }