QueryData genSafariExtensions(QueryContext& context) { QueryData results; // Iterate over each user auto users = usersFromContext(context); for (const auto& row : users) { if (row.count("uid") > 0 && row.count("directory") > 0) { auto dir = fs::path(row.at("directory")) / kSafariExtensionsPath; // Check that an extensions directory exists. if (!pathExists(dir).ok()) { continue; } // Glob the extension files. std::vector<std::string> paths; if (!resolveFilePattern(dir / kSafariExtensionsPattern, paths).ok()) { continue; } for (const auto& extension_path : paths) { genSafariExtension(row.at("uid"), extension_path, results); } } } return results; }
QueryData genSafariExtensions(QueryContext& context) { QueryData results; auto homes = osquery::getHomeDirectories(); for (const auto& home : homes) { auto dir = home / kSafariExtensionsPath; // Check that an extensions directory exists. if (!pathExists(dir).ok()) { continue; } // Glob the extension files. std::vector<std::string> paths; if (!resolveFilePattern(dir / kSafariExtensionsPattern, paths).ok()) { continue; } for (const auto& extension_path : paths) { genSafariExtension(extension_path, results); } } return results; }