Add missing smack label setting for preloaded app (#286)
[platform/core/dotnet/launcher.git] / NativeLauncher / installer-plugin / prefer_nuget_cache_plugin.cc
index 2e80c2c..f241865 100644 (file)
@@ -120,6 +120,7 @@ static bool copyAssemblyCreateSymlink(std::string binPath, std::string tacDir, s
                                        }
                                }
                                bf::create_symlink(concatPath(tac_version_dir, assembly), concatPath(tacDir, assembly));
+                               copySmackAndOwnership(tacDir, concatPath(tacDir, assembly), true);
 
                                if (!removeFile(concatPath(binPath, assembly))) {
                                        _ERR("Failed to remove of %s", assembly.c_str());
@@ -137,6 +138,7 @@ static bool copyAssemblyCreateSymlink(std::string binPath, std::string tacDir, s
                        std::string assembly = nuget_package_assembly.substr(nuget_package_assembly.rfind(':') + 1);
                        if (!strcmp(nuget_package.c_str(), nugetPackage.c_str())) {
                                copyFile(concatPath(tac_version_dir, assembly), concatPath(binPath, assembly));
+                               copySmackAndOwnership(binPath, concatPath(binPath, assembly));
                                removeFile(concatPath(tacDir, assembly));
                        }
                }
@@ -173,12 +175,14 @@ static void copyLibraryCreateSymlink(const char* pkgId, std::vector<std::string>
                        continue;
                }
                bf::create_symlink(concatPath(tlcDir, fileSha), library);
+               copySmackAndOwnership(getBaseName(library), library, true);
 
                char *sql = sqlite3_mprintf("INSERT INTO TLC (PKGID, LIBRARY) VALUES (%Q, %Q);", pkgId, fileSha.c_str());
                if (!insertDB(tlc_db, sql)) {
                        _ERR("Sqlite insert error");
                        sqlite3_free(sql);
                        copyFile(concatPath(tlcDir, fileSha), library);
+                       copySmackAndOwnership(getBaseName(library), library);
                        if (fileCopied) {
                                removeFile(concatPath(tlcDir, fileSha));
                        }