diff options
author | Karel Klic <kklic@redhat.com> | 2010-06-30 09:18:18 +0200 |
---|---|---|
committer | Karel Klic <kklic@redhat.com> | 2010-06-30 09:18:18 +0200 |
commit | 69f0ecf83241f7cecca1918e068fd7a3cfd7f24e (patch) | |
tree | ce488a23e7be1a04873b706833147e42d6fa9412 /src/Daemon/MiddleWare.cpp | |
parent | f4355cde98398d045525c70ad27be7bbf9ea8e0d (diff) | |
download | abrt-69f0ecf83241f7cecca1918e068fd7a3cfd7f24e.tar.gz abrt-69f0ecf83241f7cecca1918e068fd7a3cfd7f24e.tar.xz abrt-69f0ecf83241f7cecca1918e068fd7a3cfd7f24e.zip |
Allow remote crashes to not to belong to a package.
Skip GPG check on remote crashes.
Diffstat (limited to 'src/Daemon/MiddleWare.cpp')
-rw-r--r-- | src/Daemon/MiddleWare.cpp | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/Daemon/MiddleWare.cpp b/src/Daemon/MiddleWare.cpp index cfec3c47..fb4953d2 100644 --- a/src/Daemon/MiddleWare.cpp +++ b/src/Daemon/MiddleWare.cpp @@ -659,6 +659,7 @@ static bool is_path_blacklisted(const char *path) static mw_result_t SavePackageDescriptionToDebugDump( const char *pExecutable, const char *cmdline, + bool remote, const char *pDebugDumpDir) { std::string package; @@ -681,7 +682,7 @@ static mw_result_t SavePackageDescriptionToDebugDump( char *rpm_pkg = GetPackage(pExecutable); if (rpm_pkg == NULL) { - if (g_settings_bProcessUnpackaged) + if (g_settings_bProcessUnpackaged || remote) { VERB2 log("Crash in unpackaged executable '%s', proceeding without packaging information", pExecutable); try @@ -750,7 +751,7 @@ static mw_result_t SavePackageDescriptionToDebugDump( free(script_name); } - if (!knownOrigin && !g_settings_bProcessUnpackaged) + if (!knownOrigin && !g_settings_bProcessUnpackaged && !remote) { log("Interpreter crashed, but no packaged script detected: '%s'", cmdline); return MW_PACKAGE_ERROR; @@ -767,7 +768,7 @@ static mw_result_t SavePackageDescriptionToDebugDump( log("Blacklisted package '%s'", packageName.c_str()); return MW_BLACKLISTED; } - if (g_settings_bOpenGPGCheck) + if (g_settings_bOpenGPGCheck && !remote) { if (!s_RPM.CheckFingerprint(packageName.c_str())) { @@ -961,6 +962,7 @@ mw_result_t SaveDebugDump(const char *pDebugDumpDir, std::string analyzer; std::string executable; std::string cmdline; + bool remote = false; try { CDebugDump dd; @@ -970,6 +972,12 @@ mw_result_t SaveDebugDump(const char *pDebugDumpDir, dd.LoadText(FILENAME_ANALYZER, analyzer); dd.LoadText(FILENAME_EXECUTABLE, executable); dd.LoadText(FILENAME_CMDLINE, cmdline); + if (dd.Exist(FILENAME_REMOTE)) + { + std:string remote_str; + dd.LoadText(FILENAME_REMOTE, remote_str); + remote = (remote_str.find('1') != std::string::npos); + } } catch (CABRTException& e) { @@ -994,7 +1002,7 @@ mw_result_t SaveDebugDump(const char *pDebugDumpDir, return MW_IN_DB; } - mw_result_t res = SavePackageDescriptionToDebugDump(executable.c_str(), cmdline.c_str(), pDebugDumpDir); + mw_result_t res = SavePackageDescriptionToDebugDump(executable.c_str(), cmdline.c_str(), remote, pDebugDumpDir); if (res != MW_OK) { return res; |