From: Woongsuk Cho Date: Mon, 28 Jun 2021 01:03:43 +0000 (+0900) Subject: Fix for svace issue X-Git-Tag: accepted/tizen/6.5/unified/20211028.102011~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=79b41c69c0e08a826d4ac424483a73f31a021951;p=platform%2Fcore%2Fdotnet%2Flauncher.git Fix for svace issue - change strcpy/strcat to strncpy/strncat - use remove function insteadof system() call --- diff --git a/NativeLauncher/launcher/lib/core_runtime.cc b/NativeLauncher/launcher/lib/core_runtime.cc index 9479ac7..b500b01 100644 --- a/NativeLauncher/launcher/lib/core_runtime.cc +++ b/NativeLauncher/launcher/lib/core_runtime.cc @@ -539,8 +539,8 @@ int CoreRuntime::launch(const char* appId, const char* root, const char* path, i // set profile.data path and collect/use it if it non-exists/exists. if (profile) { char multiCoreJitProfile[strlen(localDataPath) + strlen(PROFILE_BASENAME)]; - strcpy(multiCoreJitProfile, localDataPath); - strcat(multiCoreJitProfile, PROFILE_BASENAME); + strncpy(multiCoreJitProfile, localDataPath, strlen(localDataPath)); + strncat(multiCoreJitProfile, PROFILE_BASENAME, strlen(PROFILE_BASENAME)); setEnvironmentVariable("COMPlus_MultiCoreJitProfile", multiCoreJitProfile); setEnvironmentVariable("COMPlus_MultiCoreJitMinNumCpus", "1"); diff --git a/NativeLauncher/tool/dotnettool.cc b/NativeLauncher/tool/dotnettool.cc index ffb52ca..38db4cd 100644 --- a/NativeLauncher/tool/dotnettool.cc +++ b/NativeLauncher/tool/dotnettool.cc @@ -288,23 +288,29 @@ int main(int argc, char* argv[]) //sh-3.2# dotnettool --rm-app-profile [pkgId] [pkgId] ... else if (cmd == "--rm-app-profile") { if (args.size() < 1) { - fprintf(stderr, "Package name is missing\n"); + _SERR("Package name is missing"); } - while (it != args.end()) { - std::string pkg = std::string(*it); - setenv("AUL_APPID", pkg.c_str(), 1); - char *localDataPath = app_get_data_path(); // /root/apps_rw//data/ - if (localDataPath != NULL) { - char *home = getenv("HOME"); // /root - std::string rmCMD = std::string("rm -f /home/*"); - rmCMD.append(localDataPath + strlen(home)); // rm /home/*/apps_rw//data/ - rmCMD.append(PROFILE_BASENAME); // rm /home/*/apps_rw//data/.__tizen_specific_profile_data - system(rmCMD.c_str()); - free(localDataPath); - } else { - fprintf(stderr, "Application not found [%s], skip to remove profile\n", pkg.c_str()); + char *home = getenv("HOME"); // /root + if (home == NULL) { + _SERR("Fail to get Home path from env"); + } else { + while (it != args.end()) { + std::string pkg = std::string(*it); + setenv("AUL_APPID", pkg.c_str(), 1); + char *localDataPath = app_get_data_path(); // /root/apps_rw//data/ + if (localDataPath != NULL) { + std::string pDataFile = "/home/*"; + pDataFile.append(localDataPath + strlen(home)); // /home/*/apps_rw//data/ + pDataFile.append(PROFILE_BASENAME); // /home/*/apps_rw//data/.__tizen_specific_profile_data + if (!removeFile(pDataFile)) { + _SERR("Fail to remove file (%s)", pDataFile.c_str()); + } + free(localDataPath); + } else { + _SERR("Application not found [%s], skip to remove profile", pkg.c_str()); + } + it = args.erase(it); } - it = args.erase(it); } } else {