summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorNikola Pajkovsky <npajkovs@redhat.com>2009-10-29 15:20:56 +0100
committerNikola Pajkovsky <npajkovs@redhat.com>2009-10-29 15:20:56 +0100
commit7f10181be367d77e5f3203e938ab24cf722119df (patch)
tree2c5f02ed0e9174bc3483aee3d0b84f860c314aef /lib
parentad158666b7a144d557a9476408766a7bbf7ace9d (diff)
downloadabrt-7f10181be367d77e5f3203e938ab24cf722119df.tar.gz
abrt-7f10181be367d77e5f3203e938ab24cf722119df.tar.xz
abrt-7f10181be367d77e5f3203e938ab24cf722119df.zip
Normal user can see kerneloops and report it
Bugzilla memory leaks fix
Diffstat (limited to 'lib')
-rw-r--r--lib/Plugins/Bugzilla.cpp27
-rw-r--r--lib/Plugins/KerneloopsReporter.cpp2
-rw-r--r--lib/Plugins/KerneloopsScanner.cpp3
-rw-r--r--lib/Plugins/SQLite3.cpp26
4 files changed, 46 insertions, 12 deletions
diff --git a/lib/Plugins/Bugzilla.cpp b/lib/Plugins/Bugzilla.cpp
index be81ebc..2303316 100644
--- a/lib/Plugins/Bugzilla.cpp
+++ b/lib/Plugins/Bugzilla.cpp
@@ -106,6 +106,9 @@ static void login(const char* login, const char* passwd)
xmlrpc_client_call2(&env, client, server_info, "User.login", param, &result);
throw_if_fault_occurred(&env);
+
+ xmlrpc_DECREF(result);
+ xmlrpc_DECREF(param);
}
static void logout()
@@ -118,6 +121,9 @@ static void logout()
xmlrpc_client_call2(&env, client, server_info, "User.logout", param, &result);
throw_if_fault_occurred(&env);
+
+ xmlrpc_DECREF(result);
+ xmlrpc_DECREF(param);
}
static bool check_cc_and_reporter(const uint32_t bug_id, const char* login)
@@ -146,6 +152,10 @@ static bool check_cc_and_reporter(const uint32_t bug_id, const char* login)
if (strcmp(reporter, login) == 0 )
{
+ xmlrpc_DECREF(param);
+ xmlrpc_DECREF(result);
+ xmlrpc_DECREF(reporter_member);
+ free((void*)reporter);
return true;
}
}
@@ -169,12 +179,20 @@ static bool check_cc_and_reporter(const uint32_t bug_id, const char* login)
if (strcmp(cc, login) == 0)
{
+ xmlrpc_DECREF(param);
+ xmlrpc_DECREF(result);
+ xmlrpc_DECREF(reporter_member);
+ xmlrpc_DECREF(cc_member);
+ xmlrpc_DECREF(item);
+ free((void*)cc);
return true;
}
}
}
-
+ xmlrpc_DECREF(cc_member);
+ xmlrpc_DECREF(param);
xmlrpc_DECREF(result);
+ xmlrpc_DECREF(reporter_member);
return false;
}
@@ -190,6 +208,7 @@ static void add_plus_one_cc(const uint32_t bug_id, const char* login)
throw_if_fault_occurred(&env);
xmlrpc_DECREF(result);
+ xmlrpc_DECREF(param);
}
static int32_t check_uuid_in_bugzilla(const char* component, const char* UUID)
@@ -237,12 +256,14 @@ static int32_t check_uuid_in_bugzilla(const char* component, const char* UUID)
xmlrpc_DECREF(bug);
xmlrpc_DECREF(item);
xmlrpc_DECREF(bugs_member);
+ xmlrpc_DECREF(param);
return bug_id;
}
}
xmlrpc_DECREF(result);
xmlrpc_DECREF(bugs_member);
+ xmlrpc_DECREF(param);
return -1;
}
@@ -378,6 +399,8 @@ static uint32_t new_bug(const map_crash_report_t& pCrashReport)
}
xmlrpc_DECREF(result);
+ xmlrpc_DECREF(param);
+ xmlrpc_DECREF(id);
return bug_id;
}
@@ -405,6 +428,8 @@ static void add_attachments(const std::string& pBugId, const map_crash_report_t&
xmlrpc_client_call2(&env, client, server_info, "bugzilla.addAttachment", param, &result);
throw_if_fault_occurred(&env);
+ xmlrpc_DECREF(result);
+ xmlrpc_DECREF(param);
}
}
}
diff --git a/lib/Plugins/KerneloopsReporter.cpp b/lib/Plugins/KerneloopsReporter.cpp
index e9967fd..8344b81 100644
--- a/lib/Plugins/KerneloopsReporter.cpp
+++ b/lib/Plugins/KerneloopsReporter.cpp
@@ -114,7 +114,7 @@ std::string CKerneloopsReporter::Report(const map_crash_report_t& pCrashReport,
/* FIXME: be more informative */
throw CABRTException(EXCEP_PLUGIN, std::string("CKerneloopsReporter::Report(): Report has not been sent..."));
}
- return "Kernel oops report was uploaded to :" + m_sSubmitURL;
+ return "Kernel oops report was uploaded to: " + m_sSubmitURL;
}
void CKerneloopsReporter::SetSettings(const map_plugin_settings_t& pSettings)
diff --git a/lib/Plugins/KerneloopsScanner.cpp b/lib/Plugins/KerneloopsScanner.cpp
index 4caa459..bf0222a 100644
--- a/lib/Plugins/KerneloopsScanner.cpp
+++ b/lib/Plugins/KerneloopsScanner.cpp
@@ -34,6 +34,7 @@
#include "KerneloopsSysLog.h"
#include "KerneloopsScanner.h"
+#include <limits.h>
#define FILENAME_KERNELOOPS "kerneloops"
@@ -96,7 +97,7 @@ void CKerneloopsScanner::SaveOopsToDebugDump()
try
{
CDebugDump debugDump;
- debugDump.Create(path, 0);
+ debugDump.Create(path, UINT_MAX);
debugDump.SaveText(FILENAME_ANALYZER, "Kerneloops");
debugDump.SaveText(FILENAME_EXECUTABLE, "kernel");
debugDump.SaveText(FILENAME_KERNEL, first_line);
diff --git a/lib/Plugins/SQLite3.cpp b/lib/Plugins/SQLite3.cpp
index a2dc426..200a813 100644
--- a/lib/Plugins/SQLite3.cpp
+++ b/lib/Plugins/SQLite3.cpp
@@ -24,7 +24,8 @@
#include <stdlib.h>
#include "SQLite3.h"
#include "ABRTException.h"
-
+#include <limits.h>
+#include <abrtlib.h>
#define ABRT_TABLE_VERSION 2
#define ABRT_TABLE_VERSION_STR "2"
@@ -96,8 +97,10 @@ bool CSQLite3::Exist(const std::string& pUUID, const std::string& pUID)
{
vector_database_rows_t table;
GetTable("SELECT "DATABASE_COLUMN_REPORTED" FROM "ABRT_TABLE" WHERE "
- DATABASE_COLUMN_UUID" = '"+pUUID+"' AND "
- DATABASE_COLUMN_UID" = '"+pUID+"';", table);
+ DATABASE_COLUMN_UUID" = '"+pUUID+"' "
+ "AND ("DATABASE_COLUMN_UID" = '"+pUID+"' "
+ "OR "DATABASE_COLUMN_UID" = '"+to_string(UINT_MAX)+"');"
+ , table);
if (table.empty())
{
return false;
@@ -311,7 +314,8 @@ void CSQLite3::Delete(const std::string& pUUID, const std::string& pUID)
{
Exec("DELETE FROM "ABRT_TABLE" "
"WHERE "DATABASE_COLUMN_UUID" = '"+pUUID+"' "
- "AND "DATABASE_COLUMN_UID" = '"+pUID+"';");
+ "AND "DATABASE_COLUMN_UID" = '"+pUID+"' "
+ "OR "DATABASE_COLUMN_UID" = '"+to_string(UINT_MAX)+"';");
}
else
{
@@ -335,15 +339,17 @@ void CSQLite3::SetReported(const std::string& pUUID, const std::string& pUID, co
Exec("UPDATE "ABRT_TABLE" "
"SET "DATABASE_COLUMN_REPORTED" = 1 "
"WHERE "DATABASE_COLUMN_UUID" = '"+pUUID+"' "
- "AND "DATABASE_COLUMN_UID" = '"+pUID+"';");
+ "AND ("DATABASE_COLUMN_UID" = '"+pUID+"' "
+ "OR "DATABASE_COLUMN_UID" = '"+to_string(UINT_MAX)+"');");
Exec("UPDATE "ABRT_TABLE" "
"SET "DATABASE_COLUMN_MESSAGE" = '" + pMessage + "' "
"WHERE "DATABASE_COLUMN_UUID" = '"+pUUID+"' "
- "AND "DATABASE_COLUMN_UID" = '"+pUID+"';");
+ "AND ("DATABASE_COLUMN_UID" = '"+pUID+"' "
+ "OR "DATABASE_COLUMN_UID" = '"+to_string(UINT_MAX)+"');");
}
else
{
- throw CABRTException(EXCEP_PLUGIN, "CSQLite3::SetReported(): UUID is not found in DB.");
+ throw CABRTException(EXCEP_PLUGIN, "CSQLite3::SetReported(): UUID"+pUID+" is not found in DB.");
}
}
@@ -357,7 +363,8 @@ vector_database_rows_t CSQLite3::GetUIDData(const std::string& pUID)
else
{
GetTable("SELECT * FROM "ABRT_TABLE
- " WHERE "DATABASE_COLUMN_UID" = '"+pUID+"';",
+ " WHERE "DATABASE_COLUMN_UID" = '"+pUID+"' "
+ "OR "DATABASE_COLUMN_UID" = '"+to_string(UINT_MAX)+"';",
table);
}
return table;
@@ -377,7 +384,8 @@ database_row_t CSQLite3::GetUUIDData(const std::string& pUUID, const std::string
{
GetTable("SELECT * FROM "ABRT_TABLE" "
"WHERE "DATABASE_COLUMN_UUID" = '"+pUUID+"' "
- "AND "DATABASE_COLUMN_UID" = '"+pUID+"';",
+ "AND ("DATABASE_COLUMN_UID" = '"+pUID+"' "
+ "OR "DATABASE_COLUMN_UID" = '"+to_string(UINT_MAX)+"');",
table);
}