diff options
author | Nikola Pajkovsky <npajkovs@redhat.com> | 2010-09-07 18:12:17 +0200 |
---|---|---|
committer | Nikola Pajkovsky <npajkovs@redhat.com> | 2010-09-08 15:53:29 +0200 |
commit | a0b7850b3ac3a89e2bb02a214039c777d244ef22 (patch) | |
tree | 406d4cddd94e4d6ec6d282907fc6bc3bf3c97a4d /src/daemon/CrashWatcher.cpp | |
parent | 890e78b99a136533fa5bab788ce0f6b9a9f2b47c (diff) | |
download | abrt-a0b7850b3ac3a89e2bb02a214039c777d244ef22.tar.gz abrt-a0b7850b3ac3a89e2bb02a214039c777d244ef22.tar.xz abrt-a0b7850b3ac3a89e2bb02a214039c777d244ef22.zip |
SQLite3.cpp: replace std::vector by GList
Signed-off-by: Nikola Pajkovsky <npajkovs@redhat.com>
Acked-off-by: Denys Vlasenko <dvlasenk@redhat.com>
Diffstat (limited to 'src/daemon/CrashWatcher.cpp')
-rw-r--r-- | src/daemon/CrashWatcher.cpp | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/src/daemon/CrashWatcher.cpp b/src/daemon/CrashWatcher.cpp index 63101185..416d5f41 100644 --- a/src/daemon/CrashWatcher.cpp +++ b/src/daemon/CrashWatcher.cpp @@ -188,27 +188,33 @@ int DeleteDebugDump(const char *crash_id, long caller_uid) { CDatabase* database = g_pPluginManager->GetDatabase(g_settings_sDatabase.c_str()); database->Connect(); - database_row_t row = database->GetRow(crash_id); - if (row.m_sUUID == "") + struct db_row *row = database->GetRow(crash_id); + if (!row) { database->DisConnect(); return ENOENT; } + + char caller_uid_str[sizeof(long) * 3 + 2]; + sprintf(caller_uid_str, "%li", caller_uid); + if (caller_uid != 0 /* not called by root */ - && row.m_sInformAll != "1" - && to_string(caller_uid) != row.m_sUID + && row->db_inform_all[0] != '1' + && strcmp(caller_uid_str, row->db_uid) != 0 ) { database->DisConnect(); + db_row_free(row); return EPERM; } database->DeleteRow(crash_id); database->DisConnect(); - const char *dump_dir = row.m_sDebugDumpDir.c_str(); - if (dump_dir[0] != '\0') + if (row->db_dump_dir[0] != '\0') { - delete_debug_dump_dir(dump_dir); + delete_debug_dump_dir(row->db_dump_dir); + db_row_free(row); return 0; /* success */ } + db_row_free(row); } catch (CABRTException& e) { |