diff --git a/services/appdfr/src/appfreeze_manager.cpp b/services/appdfr/src/appfreeze_manager.cpp index fc6e4f1a548052e795260e14e12cebf7a6248425..e4d6ef56023fb12c194e1b63fa97ca5d83b72544 100644 --- a/services/appdfr/src/appfreeze_manager.cpp +++ b/services/appdfr/src/appfreeze_manager.cpp @@ -894,7 +894,13 @@ void AppfreezeManager::PerfStart(std::string eventName) } std::string AppfreezeManager::GetFirstLine(const std::string &path) { - std::ifstream inFile(path.c_str()); + std::string realPath; + if (!OHOS::PathToRealPath(path, realPath)) { + TAG_LOGE(AAFwkTag::APPDFR, "realpath failed, path:%{public}s errno:%{public}d", + path.c_str(), errno); + return ""; + } + std::ifstream inFile(realPath.c_str()); if (!inFile) { return ""; } diff --git a/test/unittest/dfr_test/appfreeze_manager_test/appfreeze_manager_test.cpp b/test/unittest/dfr_test/appfreeze_manager_test/appfreeze_manager_test.cpp index aa170c629c4ab7f995e49880ddd45ae8656c79fe..fc145dd7c04ca14f450b8a45b4bc286767b3b348 100644 --- a/test/unittest/dfr_test/appfreeze_manager_test/appfreeze_manager_test.cpp +++ b/test/unittest/dfr_test/appfreeze_manager_test/appfreeze_manager_test.cpp @@ -379,5 +379,17 @@ HWTEST_F(AppfreezeManagerTest, AppfreezeManagerTest_GetFaultNotifyData_001, Test faultNotifyData = appfreezeManager->GetFaultNotifyData(faultData, pid); EXPECT_EQ(faultNotifyData.eventId, 10); } + +/** + * @tc.number: AppfreezeManagerTest_GetFirstLine_001 + * @tc.desc: add testcase + * @tc.type: FUNC + */ +HWTEST_F(AppfreezeManagerTest, AppfreezeManagerTest_GetFirstLine_001, TestSize.Level1) +{ + std::string ret = appfreezeManager->GetFirstLine("../111"); + EXPECT_EQ(ret, ""); + appfreezeManager->GetFirstLine("/data/log/test"); +} } // namespace AppExecFwk } // namespace OHOS