diff --git a/frameworks/native/appkit/app/main_thread.cpp b/frameworks/native/appkit/app/main_thread.cpp index c3ca7b8e1b394e644eb657f27197b290d56dfb5d..e3ff8c70345db37574f91d3ca2acb23a05a75e39 100644 --- a/frameworks/native/appkit/app/main_thread.cpp +++ b/frameworks/native/appkit/app/main_thread.cpp @@ -4046,7 +4046,13 @@ void MainThread::HandleConfigByPlugin(Configuration &config, BundleInfo &bundleI return; } - void* handle = dlopen(PC_LIBRARY_PATH, RTLD_LAZY); + char resolvedPath[PATH_MAX] = {0}; + if (realpath(PC_LIBRARY_PATH, resolvedPath) == nullptr) { + TAG_LOGE(AAFwkTag::APPKIT, "errno = %{public}d", errno); + return; + } + + void* handle = dlopen(resolvedPath, RTLD_LAZY); if (handle == nullptr) { TAG_LOGW(AAFwkTag::APPKIT, "reason %{public}sn", dlerror()); return;