diff options
author | Nikola Pajkovsky <npajkovs@redhat.com> | 2009-10-29 15:20:56 +0100 |
---|---|---|
committer | Nikola Pajkovsky <npajkovs@redhat.com> | 2009-10-29 15:20:56 +0100 |
commit | 7f10181be367d77e5f3203e938ab24cf722119df (patch) | |
tree | 2c5f02ed0e9174bc3483aee3d0b84f860c314aef /lib/Plugins/SQLite3.cpp | |
parent | ad158666b7a144d557a9476408766a7bbf7ace9d (diff) | |
download | abrt-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/Plugins/SQLite3.cpp')
-rw-r--r-- | lib/Plugins/SQLite3.cpp | 26 |
1 files changed, 17 insertions, 9 deletions
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); } |