summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2010-01-28 15:34:08 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2010-01-28 15:34:08 +0100
commit9180163f65df24d7df684a1baa2ee3bb253bf516 (patch)
treee1ee68d387dfb4358b897d78eccee4e7e565ea17
parentefb5ca1baa123a357fad58849b10fb8845cef165 (diff)
parent099f3cac8c2bf532a796468fb2950c4551c85960 (diff)
downloadabrt-9180163f65df24d7df684a1baa2ee3bb253bf516.tar.gz
abrt-9180163f65df24d7df684a1baa2ee3bb253bf516.tar.xz
abrt-9180163f65df24d7df684a1baa2ee3bb253bf516.zip
Merge branch 'master' into rhel6
Conflicts: src/Daemon/abrt.conf Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--lib/Plugins/Bugzilla.cpp69
-rw-r--r--lib/Plugins/CCpp.conf2
-rw-r--r--lib/Plugins/Catcut.cpp44
-rw-r--r--lib/Utils/abrt_xmlrpc.cpp9
-rw-r--r--lib/Utils/abrt_xmlrpc.h1
-rw-r--r--po/pl.po22
-rw-r--r--src/Daemon/MiddleWare.cpp7
-rw-r--r--src/Daemon/abrt.conf3
8 files changed, 59 insertions, 98 deletions
diff --git a/lib/Plugins/Bugzilla.cpp b/lib/Plugins/Bugzilla.cpp
index 0197a7bf..fa6b35e4 100644
--- a/lib/Plugins/Bugzilla.cpp
+++ b/lib/Plugins/Bugzilla.cpp
@@ -44,8 +44,7 @@ void ctx::login(const char* login, const char* passwd)
xmlrpc_env_init(&env);
xmlrpc_value* param = xmlrpc_build_value(&env, "({s:s,s:s})", "login", login, "password", passwd);
- if (env.fault_occurred)
- throw_xml_fault(&env);
+ throw_if_xml_fault_occurred(&env);
xmlrpc_value* result = NULL;
xmlrpc_client_call2(&env, m_pClient, m_pServer_info, "User.login", param, &result);
@@ -68,16 +67,13 @@ void ctx::logout()
xmlrpc_env_init(&env);
xmlrpc_value* param = xmlrpc_build_value(&env, "(s)", "");
- if (env.fault_occurred)
- throw_xml_fault(&env);
+ throw_if_xml_fault_occurred(&env);
xmlrpc_value* result = NULL;
xmlrpc_client_call2(&env, m_pClient, m_pServer_info, "User.logout", param, &result);
xmlrpc_DECREF(param);
- if (result)
- xmlrpc_DECREF(result);
- if (env.fault_occurred)
- throw_xml_fault(&env);
+ xmlrpc_DECREF(result);
+ throw_if_xml_fault_occurred(&env);
}
bool ctx::check_cc_and_reporter(uint32_t bug_id, const char* login)
@@ -85,17 +81,13 @@ bool ctx::check_cc_and_reporter(uint32_t bug_id, const char* login)
xmlrpc_env env;
xmlrpc_env_init(&env);
- // fails only when you write query. when it's done it never fails.
xmlrpc_value* param = xmlrpc_build_value(&env, "(s)", to_string(bug_id).c_str());
- if (env.fault_occurred)
- throw_xml_fault(&env);
+ throw_if_xml_fault_occurred(&env); // failed to allocate memory
xmlrpc_value* result = NULL;
xmlrpc_client_call2(&env, m_pClient, m_pServer_info, "bugzilla.getBug", param, &result);
- // we don't need anymore xml structure for calling xmlrpc query(calls only once)
xmlrpc_DECREF(param);
- if (env.fault_occurred)
- throw_xml_fault(&env);
+ throw_if_xml_fault_occurred(&env);
xmlrpc_value* reporter_member = NULL;
xmlrpc_struct_find_value(&env, result, "reporter", &reporter_member);
@@ -129,7 +121,7 @@ bool ctx::check_cc_and_reporter(uint32_t bug_id, const char* login)
{
VERB3 log("Missing member 'reporter'");
xmlrpc_DECREF(result);
- throw CABRTException(EXCEP_PLUGIN, _("Missing member 'bugs'"));
+ throw CABRTException(EXCEP_PLUGIN, _("Missing member 'reporter'"));
}
xmlrpc_value* cc_member = NULL;
@@ -179,7 +171,7 @@ bool ctx::check_cc_and_reporter(uint32_t bug_id, const char* login)
}
else
{
- VERB3 log("Missing member 'bugs'");
+ VERB3 log("Missing member 'cc'");
xmlrpc_DECREF(result);
throw CABRTException(EXCEP_PLUGIN, _("Missing member 'cc'"));
}
@@ -193,19 +185,14 @@ void ctx::add_plus_one_cc(uint32_t bug_id, const char* login)
xmlrpc_env env;
xmlrpc_env_init(&env);
- // fails only when you write query. when it's done it never fails.
xmlrpc_value* param = xmlrpc_build_value(&env, "({s:i,s:{s:(s)}})", "ids", bug_id, "updates", "add_cc", login);
- if (env.fault_occurred)
- throw_xml_fault(&env);
+ throw_if_xml_fault_occurred(&env); // failed to allocate memory
xmlrpc_value* result = NULL;
xmlrpc_client_call2(&env, m_pClient, m_pServer_info, "Bug.update", param, &result);
- // we don't need anymore xml structure for calling xmlrpc query(calls only once)
xmlrpc_DECREF(param);
- if (env.fault_occurred)
- throw_xml_fault(&env);
-
xmlrpc_DECREF(result);
+ throw_if_xml_fault_occurred(&env);
}
int32_t ctx::check_uuid_in_bugzilla(const char* component, const char* UUID)
@@ -215,17 +202,13 @@ int32_t ctx::check_uuid_in_bugzilla(const char* component, const char* UUID)
std::string query = ssprintf("ALL component:\"%s\" statuswhiteboard:\"%s\"", component, UUID);
- // fails only when you write query. when it's done it never fails.
xmlrpc_value* param = xmlrpc_build_value(&env, "({s:s})", "quicksearch", query.c_str());
- if (env.fault_occurred)
- throw_xml_fault(&env);
+ throw_if_xml_fault_occurred(&env); // failed to allocate memory
xmlrpc_value* result = NULL;
xmlrpc_client_call2(&env, m_pClient, m_pServer_info, "Bug.search", param, &result);
- // we don't need anymore xml structure for calling xmlrpc query(calls only once)
xmlrpc_DECREF(param);
- if (env.fault_occurred)
- throw_xml_fault(&env);
+ throw_if_xml_fault_occurred(&env); // on error result is NULL, no need to DECREF
xmlrpc_value* bugs_member = NULL;
xmlrpc_struct_find_value(&env, result, "bugs", &bugs_member);
@@ -237,7 +220,7 @@ int32_t ctx::check_uuid_in_bugzilla(const char* component, const char* UUID)
if (bugs_member)
{
- // when array size is equal 0 that means no bug reported
+ // when array size is 0 that means no bug reported
uint32_t array_size = xmlrpc_array_size(&env, bugs_member);
if (env.fault_occurred)
{
@@ -325,7 +308,6 @@ uint32_t ctx::new_bug(const map_crash_data_t& pCrashData)
std::string version;
parse_release(release.c_str(), product, version);
- // fails only when you write query. when it's done it never fails.
xmlrpc_value* param = xmlrpc_build_value(&env, "({s:s,s:s,s:s,s:s,s:s,s:s,s:s})",
"product", product.c_str(),
"component", component.c_str(),
@@ -335,17 +317,14 @@ uint32_t ctx::new_bug(const map_crash_data_t& pCrashData)
"status_whiteboard", status_whiteboard.c_str(),
"platform", arch.c_str()
);
- if (env.fault_occurred)
- throw_xml_fault(&env);
+ throw_if_xml_fault_occurred(&env); // failed to allocate memory
- xmlrpc_value* result;
+ xmlrpc_value* result = NULL;
xmlrpc_client_call2(&env, m_pClient, m_pServer_info, "Bug.create", param, &result);
- // we don't need anymore xml structure for calling xmlrpc query(calls only once)
xmlrpc_DECREF(param);
- if (env.fault_occurred)
- throw_xml_fault(&env);
+ throw_if_xml_fault_occurred(&env);
- xmlrpc_value* id;
+ xmlrpc_value* id = NULL;
xmlrpc_struct_find_value(&env, result, "id", &id);
if (env.fault_occurred)
{
@@ -377,8 +356,6 @@ void ctx::add_attachments(const char* bug_id_str, const map_crash_data_t& pCrash
xmlrpc_env env;
xmlrpc_env_init(&env);
- xmlrpc_value* result = NULL;
-
map_crash_data_t::const_iterator it = pCrashData.begin();
for (; it != pCrashData.end(); it++)
{
@@ -390,7 +367,6 @@ void ctx::add_attachments(const char* bug_id_str, const map_crash_data_t& pCrash
&& (content.length() > CD_TEXT_ATT_SIZE || itemname == FILENAME_BACKTRACE)
) {
char *encoded64 = encode_base64(content.c_str(), content.length());
- // fails only when you write query. when it's done it never fails.
xmlrpc_value* param = xmlrpc_build_value(&env, "(s{s:s,s:s,s:s,s:s})",
bug_id_str,
"description", ("File: " + itemname).c_str(),
@@ -399,18 +375,13 @@ void ctx::add_attachments(const char* bug_id_str, const map_crash_data_t& pCrash
"data", encoded64
);
free(encoded64);
- if (env.fault_occurred)
- throw_xml_fault(&env);
+ throw_if_xml_fault_occurred(&env); // failed to allocate memory
+ xmlrpc_value* result = NULL;
xmlrpc_client_call2(&env, m_pClient, m_pServer_info, "bugzilla.addAttachment", param, &result);
- // we don't need anymore xml structure for calling xmlrpc query(calls only once)
xmlrpc_DECREF(param);
- if (env.fault_occurred)
- {
- xmlrpc_DECREF(result);
- throw_xml_fault(&env);
- }
xmlrpc_DECREF(result);
+ throw_if_xml_fault_occurred(&env);
}
}
}
diff --git a/lib/Plugins/CCpp.conf b/lib/Plugins/CCpp.conf
index 153efb95..30e1550c 100644
--- a/lib/Plugins/CCpp.conf
+++ b/lib/Plugins/CCpp.conf
@@ -3,7 +3,7 @@ Enabled = yes
# If you also want to dump file named "core"
# in crashed process' current dir, set to "yes"
-MakeCompatCore = no
+MakeCompatCore = yes
# Generate backtrace
Backtrace = yes
diff --git a/lib/Plugins/Catcut.cpp b/lib/Plugins/Catcut.cpp
index 3580a3b4..badca4b4 100644
--- a/lib/Plugins/Catcut.cpp
+++ b/lib/Plugins/Catcut.cpp
@@ -167,14 +167,12 @@ struct_find_int(xmlrpc_env* env, xmlrpc_value* result,
{
xmlrpc_value* an_xmlrpc_value;
xmlrpc_struct_find_value(env, result, fieldName, &an_xmlrpc_value);
- if (env->fault_occurred)
- throw_xml_fault(env);
+ throw_if_xml_fault_occurred(env);
if (an_xmlrpc_value)
{
xmlrpc_read_int(env, an_xmlrpc_value, &value);
- if (env->fault_occurred)
- throw_xml_fault(env);
+ throw_if_xml_fault_occurred(env);
xmlrpc_DECREF(an_xmlrpc_value);
return true;
}
@@ -187,14 +185,12 @@ struct_find_string(xmlrpc_env* env, xmlrpc_value* result,
{
xmlrpc_value* an_xmlrpc_value;
xmlrpc_struct_find_value(env, result, fieldName, &an_xmlrpc_value);
- if (env->fault_occurred)
- throw_xml_fault(env);
+ throw_if_xml_fault_occurred(env);
if (an_xmlrpc_value)
{
const char* value_s;
xmlrpc_read_string(env, an_xmlrpc_value, &value_s);
- if (env->fault_occurred)
- throw_xml_fault(env);
+ throw_if_xml_fault_occurred(env);
value = value_s;
xmlrpc_DECREF(an_xmlrpc_value);
free((void*)value_s);
@@ -233,24 +229,20 @@ ctx::login(const char* login, const char* passwd)
xmlrpc_env_init(&env);
xmlrpc_value* param = xmlrpc_build_value(&env, "(ss)", login, passwd);
- if (env.fault_occurred)
- throw_xml_fault(&env);
+ throw_if_xml_fault_occurred(&env);
- xmlrpc_value* result;
+ xmlrpc_value* result = NULL;
xmlrpc_client_call2(&env, m_pClient, m_pServer_info, "Catcut.auth", param, &result);
xmlrpc_DECREF(param);
- if (env.fault_occurred)
- throw_xml_fault(&env);
+ throw_if_xml_fault_occurred(&env);
xmlrpc_value *cookie_xml;
const char *cookie;
string cookie_str;
xmlrpc_struct_find_value(&env, result, "cookie", &cookie_xml);
- if (env.fault_occurred)
- throw_xml_fault(&env);
+ throw_if_xml_fault_occurred(&env);
xmlrpc_read_string(&env, cookie_xml, &cookie);
- if (env.fault_occurred)
- throw_xml_fault(&env);
+ throw_if_xml_fault_occurred(&env);
cookie_str = cookie;
/* xmlrpc_read_string returns *malloc'ed ptr*.
* doc is not very clear on it, but I looked in xmlrpc sources. */
@@ -293,24 +285,20 @@ ctx::new_bug(const char *auth_cookie, const map_crash_data_t& pCrashData)
"status_whiteboard", status_whiteboard.c_str(),
"platform", arch.c_str()
);
- if (env.fault_occurred)
- throw_xml_fault(&env);
+ throw_if_xml_fault_occurred(&env);
xmlrpc_value *result;
xmlrpc_client_call2(&env, m_pClient, m_pServer_info, "Catcut.createTicket", param, &result);
xmlrpc_DECREF(param);
- if (env.fault_occurred)
- throw_xml_fault(&env);
+ throw_if_xml_fault_occurred(&env);
xmlrpc_value *bug_id_xml;
const char *bug_id;
string bug_id_str;
xmlrpc_struct_find_value(&env, result, "ticket", &bug_id_xml);
- if (env.fault_occurred)
- throw_xml_fault(&env);
+ throw_if_xml_fault_occurred(&env);
xmlrpc_read_string(&env, bug_id_xml, &bug_id);
- if (env.fault_occurred)
- throw_xml_fault(&env);
+ throw_if_xml_fault_occurred(&env);
bug_id_str = bug_id;
log("New bug id: %s", bug_id);
update_client(_("New bug id: %s"), bug_id);
@@ -334,14 +322,12 @@ ctx::request_upload(const char* auth_cookie, const char* pTicketName,
pTicketName,
fileName,
description);
- if (env.fault_occurred)
- throw_xml_fault(&env);
+ throw_if_xml_fault_occurred(&env);
xmlrpc_value* result = NULL;
xmlrpc_client_call2(&env, m_pClient, m_pServer_info, "Catcut.requestUpload", param, &result);
xmlrpc_DECREF(param);
- if (env.fault_occurred)
- throw_xml_fault(&env);
+ throw_if_xml_fault_occurred(&env);
string URL;
bool has_URL = struct_find_string(&env, result, "uri", URL);
diff --git a/lib/Utils/abrt_xmlrpc.cpp b/lib/Utils/abrt_xmlrpc.cpp
index e3a4648a..c2d716e1 100644
--- a/lib/Utils/abrt_xmlrpc.cpp
+++ b/lib/Utils/abrt_xmlrpc.cpp
@@ -15,7 +15,6 @@ CURL* xcurl_easy_init()
return curl;
}
-#if 1
void throw_xml_fault(xmlrpc_env *env)
{
std::string errmsg = ssprintf("XML-RPC Fault: %s(%d)", env->fault_string, env->fault_code);
@@ -24,19 +23,13 @@ void throw_xml_fault(xmlrpc_env *env)
error_msg("%s", errmsg.c_str()); // show error in daemon log
throw CABRTException(EXCEP_PLUGIN, errmsg.c_str());
}
-#else
void throw_if_xml_fault_occurred(xmlrpc_env *env)
{
if (env->fault_occurred)
{
- std::string errmsg = ssprintf("XML-RPC Fault: %s(%d)", env->fault_string, env->fault_code);
- xmlrpc_env_clean(env); // this is needed ONLY if fault_occurred
- xmlrpc_env_init(env); // just in case user catches ex and _continues_ to use env
- error_msg("%s", errmsg.c_str()); // show error in daemon log
- throw CABRTException(EXCEP_PLUGIN, errmsg.c_str());
+ throw_xml_fault(env);
}
}
-#endif
void abrt_xmlrpc_conn::new_xmlrpc_client(const char* url, bool no_ssl_verify)
{
diff --git a/lib/Utils/abrt_xmlrpc.h b/lib/Utils/abrt_xmlrpc.h
index a8bd2cca..a0e9ca34 100644
--- a/lib/Utils/abrt_xmlrpc.h
+++ b/lib/Utils/abrt_xmlrpc.h
@@ -25,6 +25,7 @@ struct abrt_xmlrpc_conn {
/* Utility functions */
void throw_xml_fault(xmlrpc_env *env);
+void throw_if_xml_fault_occurred(xmlrpc_env *env);
CURL* xcurl_easy_init();
#endif
diff --git a/po/pl.po b/po/pl.po
index 54dc02ca..0d7483a4 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: pl\n"
"Report-Msgid-Bugs-To: jmoskovc@redhat.com\n"
-"POT-Creation-Date: 2010-01-27 13:02+0000\n"
-"PO-Revision-Date: 2010-01-27 14:12+0100\n"
+"POT-Creation-Date: 2010-01-27 19:29+0000\n"
+"PO-Revision-Date: 2010-01-27 20:34+0100\n"
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
"Language-Team: Polish <trans-pl@lists.fedoraproject.org>\n"
"MIME-Version: 1.0\n"
@@ -44,15 +44,15 @@ msgstr "Wtyczki zgłaszania"
msgid "Database plugins"
msgstr "Wtyczki baz danych"
-#: ../src/Gui/CCDBusBackend.py:74 ../src/Gui/CCDBusBackend.py:97
+#: ../src/Gui/CCDBusBackend.py:75 ../src/Gui/CCDBusBackend.py:98
msgid "Can't connect to system dbus"
msgstr "Nie można połączyć się z systemową magistralą D-Bus"
-#: ../src/Gui/CCDBusBackend.py:104 ../src/Gui/CCDBusBackend.py:107
+#: ../src/Gui/CCDBusBackend.py:121 ../src/Gui/CCDBusBackend.py:124
msgid "Please check if abrt daemon is running"
msgstr "Proszę sprawdzić, czy demon abrt jest uruchomiony"
-#: ../src/Gui/CCDBusBackend.py:159
+#: ../src/Gui/CCDBusBackend.py:176
msgid ""
"Daemon didn't return valid report info\n"
"Debuginfo is missing?"
@@ -271,7 +271,7 @@ msgstr ""
"Nie można zapisać ustawień wtyczki:\n"
" %s"
-#: ../src/Gui/dialogs.glade.h:1 ../src/Gui/report.glade.h:17
+#: ../src/Gui/dialogs.glade.h:1
msgid "Log"
msgstr "Dziennik"
@@ -361,13 +361,17 @@ msgid "I agree to submit this backtrace, which could contain sensitive data"
msgstr ""
"Wyrażam zgodę na wysłanie tego wyjątku, który może zawierać prywatne dane"
-#: ../src/Gui/report.glade.h:18
+#: ../src/Gui/report.glade.h:17
msgid "N/A"
msgstr "Nie dotyczy"
+#: ../src/Gui/report.glade.h:18
+msgid "Send report"
+msgstr "Wyślij raport"
+
#: ../src/Gui/report.glade.h:19
-msgid "Send"
-msgstr "Wyślij"
+msgid "Show log"
+msgstr "Wyświetl dziennik"
#: ../src/Gui/SettingsDialog.py:33 ../src/Gui/SettingsDialog.py:50
msgid "<b>Select plugin</b>"
diff --git a/src/Daemon/MiddleWare.cpp b/src/Daemon/MiddleWare.cpp
index 01c3850b..ba7e0a05 100644
--- a/src/Daemon/MiddleWare.cpp
+++ b/src/Daemon/MiddleWare.cpp
@@ -655,6 +655,12 @@ static mw_result_t SavePackageDescriptionToDebugDump(
log("Package '%s' isn't signed with proper key", packageName.c_str());
return MW_GPG_ERROR;
}
+ /*
+ Checking the MD5 sum requires to run prelink to "un-prelink" the
+ binaries - this is considered potential security risk so we don't
+ use it, until we find some non-intrusive way
+ */
+ /*
if (!CheckHash(packageName.c_str(), pExecutable))
{
error_msg("Executable '%s' seems to be modified, "
@@ -662,6 +668,7 @@ static mw_result_t SavePackageDescriptionToDebugDump(
pExecutable, packageName.c_str());
return MW_GPG_ERROR;
}
+ */
}
}
diff --git a/src/Daemon/abrt.conf b/src/Daemon/abrt.conf
index dec1c725..7829dc43 100644
--- a/src/Daemon/abrt.conf
+++ b/src/Daemon/abrt.conf
@@ -19,8 +19,7 @@ MaxCrashReportsSize = 1000
#ActionsAndReporters = Mailx("[abrt] new crash was detected"), RunApp("cp /etc/mtab .")
# If you don't want sosreport to be run immediately after crash,
# you may comment it out here and add ", SOSreport" to "CCpp ="
-# and "Python =" lines below. That way it runs when crash is reported,
-# not when it occurs.
+# and "Python =" lines below.
ActionsAndReporters = SOSreport
# What actions or reporters to run on each crash type