diff options
| author | Zdenek Prikryl <zprikryl@redhat.com> | 2009-02-19 14:30:45 +0100 |
|---|---|---|
| committer | Zdenek Prikryl <zprikryl@redhat.com> | 2009-02-19 14:30:45 +0100 |
| commit | eb882148c783b31cf437708711a93b9b7e8f3e9e (patch) | |
| tree | 7005cb64fe827be734edb78de516c0549233b02d /lib/MiddleWare/MiddleWare.cpp | |
| parent | ec24cd913d2f486234c884d17792e05ae8184ef5 (diff) | |
| download | abrt-eb882148c783b31cf437708711a93b9b7e8f3e9e.tar.gz abrt-eb882148c783b31cf437708711a93b9b7e8f3e9e.tar.xz abrt-eb882148c783b31cf437708711a93b9b7e8f3e9e.zip | |
added option for OpenGPG check
Diffstat (limited to 'lib/MiddleWare/MiddleWare.cpp')
| -rw-r--r-- | lib/MiddleWare/MiddleWare.cpp | 30 |
1 files changed, 21 insertions, 9 deletions
diff --git a/lib/MiddleWare/MiddleWare.cpp b/lib/MiddleWare/MiddleWare.cpp index 4172c1a..f4f50df 100644 --- a/lib/MiddleWare/MiddleWare.cpp +++ b/lib/MiddleWare/MiddleWare.cpp @@ -26,7 +26,8 @@ CMiddleWare::CMiddleWare(const std::string& pPlugisConfDir, const std::string& pPlugisLibDir, const std::string& pMiddleWareConfFile) : - m_pPluginManager(NULL) + m_pPluginManager(NULL), + m_bOpenGPGCheck(true) { m_pPluginManager = new CPluginManager(pPlugisConfDir, pPlugisLibDir); if (m_pPluginManager == NULL) @@ -70,6 +71,10 @@ void CMiddleWare::LoadSettings(const std::string& pPath) m_RPMInfo.LoadOpenGPGPublicKey(*it_k); } } + if (settings.find("EnableOpenGPG") != settings.end()) + { + m_bOpenGPGCheck = settings["EnableOpenGPG"] == "yes"; + } if (settings.find("Database") != settings.end()) { m_sDatabase = settings["Database"]; @@ -220,7 +225,7 @@ void CMiddleWare::Report(const crash_context_t& pCrashContext, database->SetReported(pCrashContext.m_sUUID, pCrashContext.m_sUID); database->DisConnect(); } - +#include <iostream> int CMiddleWare::SaveDebugDump(const std::string& pDebugDumpDir, crash_info_t& pCrashInfo) { CDatabase* database = m_pPluginManager->GetDatabase(m_sDatabase); @@ -234,17 +239,24 @@ int CMiddleWare::SaveDebugDump(const std::string& pDebugDumpDir, crash_info_t& p CDebugDump dd; dd.Open(pDebugDumpDir); - dd.LoadText(FILENAME_EXECUTABLE, executable); package = m_RPMInfo.GetPackage(executable); - std::string packageName = package.substr(0, package.find("-")); - if (package == "" || - !m_RPMInfo.CheckFingerprint(packageName) || !m_RPMInfo.CheckHash(packageName, executable) || + std::string packageName = package.substr(0, package.rfind("-", package.rfind("-") - 1)); + if (packageName == "" || (m_setBlackList.find(packageName) != m_setBlackList.end())) { - dd.Delete(pDebugDumpDir); + dd.Delete(); return 0; } + if (m_bOpenGPGCheck) + { + if (!m_RPMInfo.CheckFingerprint(packageName) || + !m_RPMInfo.CheckHash(packageName, executable)) + { + dd.Delete(); + return 0; + } + } dd.SaveText(FILENAME_PACKAGE, package); if (dd.Exist(FILENAME_APPLICATION)) @@ -275,12 +287,12 @@ int CMiddleWare::SaveDebugDump(const std::string& pDebugDumpDir, crash_info_t& p if (row.m_sReported == "1") { - dd.Delete(pDebugDumpDir); + dd.Delete(); return 0; } if (row.m_sCount != "1") { - dd.Delete(pDebugDumpDir); + dd.Delete(); } dd.Close(); |
