From 764c3a1e4f21c635c565cf5c20c480dbf48d1599 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Tue, 19 Jan 2010 16:48:54 +0100 Subject: unify "crash data, "crash info" and "crash report" data types. they are the same Signed-off-by: Denys Vlasenko --- src/Daemon/Daemon.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src/Daemon/Daemon.cpp') diff --git a/src/Daemon/Daemon.cpp b/src/Daemon/Daemon.cpp index dc547af..2964d58 100644 --- a/src/Daemon/Daemon.cpp +++ b/src/Daemon/Daemon.cpp @@ -51,15 +51,15 @@ * - signal: we got SIGTERM or SIGINT * * DBus methods we have: - * - GetCrashInfos(): returns a vector_crash_infos_t (vector_map_vector_string_t) + * - GetCrashInfos(): returns a vector_map_crash_data_t (vector_map_vector_string_t) * of crashes for given uid * v[N]["executable"/"uid"/"kernel"/"backtrace"][N] = "contents" * - StartJob(UUID,force): starts creating a report for /var/cache/abrt/DIR with this UUID. * Returns job id (uint64). * After thread returns, when report creation thread has finished, * JobDone(client_dbus_ID,UUID) dbus signal is emitted. - * - CreateReport(UUID): returns map_crash_report_t (map_vector_string_t) - * - Report(map_crash_report_t (map_vector_string_t[, map_map_string_t])): + * - CreateReport(UUID): returns map_crash_data_t (map_vector_string_t) + * - Report(map_crash_data_t (map_vector_string_t[, map_map_string_t])): * "Please report this crash": calls Report() of all registered reporter plugins. * Returns report_status_t (map_vector_string_t) - the status of each call. * 2nd parameter is the contents of user's abrt.conf. @@ -320,7 +320,7 @@ static void FindNewDumps(const char* pPath) vector_string_t::iterator itt = dirs.begin(); for (; itt != dirs.end(); ++itt) { - map_crash_info_t crashinfo; + map_crash_data_t crashinfo; try { mw_result_t res = SaveDebugDump(itt->c_str(), crashinfo); @@ -476,7 +476,7 @@ static gboolean handle_inotify_cb(GIOChannel *gio, GIOCondition condition, gpoin worst_dir = ""; } - map_crash_info_t crashinfo; + map_crash_data_t crashinfo; try { std::string fullname = concat_path_file(DEBUG_DUMPS_DIR, name); @@ -501,7 +501,7 @@ static gboolean handle_inotify_cb(GIOChannel *gio, GIOCondition condition, gpoin if (analyzer_has_AutoReportUIDs(analyzer, uid_str)) { VERB1 log("Reporting the crash automatically"); - map_crash_report_t crash_report; + map_crash_data_t crash_report; mw_result_t crash_result = CreateCrashReport( crashinfo[CD_UUID][CD_CONTENT].c_str(), uid_str, /*force:*/ 0, crash_report -- cgit From 562cb414ee83452749058c2c976019c663111e55 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Wed, 20 Jan 2010 16:42:17 +0100 Subject: split load_crash_data_from_debug_dump from DebugDumpToCrashReport We will need it elsewhere later Signed-off-by: Denys Vlasenko --- src/Daemon/Daemon.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/Daemon/Daemon.cpp') diff --git a/src/Daemon/Daemon.cpp b/src/Daemon/Daemon.cpp index 2964d58..c7acffc 100644 --- a/src/Daemon/Daemon.cpp +++ b/src/Daemon/Daemon.cpp @@ -320,9 +320,9 @@ static void FindNewDumps(const char* pPath) vector_string_t::iterator itt = dirs.begin(); for (; itt != dirs.end(); ++itt) { - map_crash_data_t crashinfo; try { + map_crash_data_t crashinfo; mw_result_t res = SaveDebugDump(itt->c_str(), crashinfo); switch (res) { @@ -476,11 +476,11 @@ static gboolean handle_inotify_cb(GIOChannel *gio, GIOCondition condition, gpoin worst_dir = ""; } - map_crash_data_t crashinfo; try { std::string fullname = concat_path_file(DEBUG_DUMPS_DIR, name); - + map_crash_data_t crashinfo; +//todo: rename SaveDebugDump to ???? it does not save crashinfo, it FETCHES crashinfo mw_result_t res = SaveDebugDump(fullname.c_str(), crashinfo); switch (res) { -- cgit From 1a3447c52fe47cca5d72d0a15cbbca9f6d18eb50 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Wed, 20 Jan 2010 20:26:28 +0100 Subject: use get_crash_data_item_content() accessor more widely Signed-off-by: Denys Vlasenko --- src/Daemon/Daemon.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src/Daemon/Daemon.cpp') diff --git a/src/Daemon/Daemon.cpp b/src/Daemon/Daemon.cpp index c7acffc..829b2a7 100644 --- a/src/Daemon/Daemon.cpp +++ b/src/Daemon/Daemon.cpp @@ -328,7 +328,7 @@ static void FindNewDumps(const char* pPath) { case MW_OK: VERB1 log("Saving %s into database", itt->c_str()); - RunActionsAndReporters(crashinfo[CD_MWDDD][CD_CONTENT].c_str()); + RunActionsAndReporters(get_crash_data_item_content(crashinfo, CD_MWDDD).c_str()); break; case MW_IN_DB: VERB1 log("%s is already saved in database", itt->c_str()); @@ -486,7 +486,7 @@ static gboolean handle_inotify_cb(GIOChannel *gio, GIOCondition condition, gpoin { case MW_OK: log("New crash, saving"); - RunActionsAndReporters(crashinfo[CD_MWDDD][CD_CONTENT].c_str()); + RunActionsAndReporters(get_crash_data_item_content(crashinfo, CD_MWDDD).c_str()); /* Fall through */ case MW_REPORTED: case MW_OCCURED: @@ -494,8 +494,8 @@ static gboolean handle_inotify_cb(GIOChannel *gio, GIOCondition condition, gpoin if (res != MW_OK) log("Already saved crash, just sending dbus signal"); - const char *analyzer = crashinfo[CD_MWANALYZER][CD_CONTENT].c_str(); - const char *uid_str = crashinfo[CD_UID][CD_CONTENT].c_str(); + const char *analyzer = get_crash_data_item_content(crashinfo, CD_MWANALYZER).c_str(); + const char *uid_str = get_crash_data_item_content(crashinfo, CD_UID).c_str(); /* Autoreport it if configured to do so */ if (analyzer_has_AutoReportUIDs(analyzer, uid_str)) @@ -503,7 +503,7 @@ static gboolean handle_inotify_cb(GIOChannel *gio, GIOCondition condition, gpoin VERB1 log("Reporting the crash automatically"); map_crash_data_t crash_report; mw_result_t crash_result = CreateCrashReport( - crashinfo[CD_UUID][CD_CONTENT].c_str(), + get_crash_data_item_content(crashinfo, CD_UUID).c_str(), uid_str, /*force:*/ 0, crash_report ); if (crash_result == MW_OK) @@ -525,7 +525,7 @@ static gboolean handle_inotify_cb(GIOChannel *gio, GIOCondition condition, gpoin /* Send dbus signal */ if (analyzer_has_InformAllUsers(analyzer)) uid_str = NULL; - g_pCommLayer->Crash(crashinfo[CD_PACKAGE][CD_CONTENT].c_str(), uid_str); + g_pCommLayer->Crash(get_crash_data_item_content(crashinfo, CD_PACKAGE).c_str(), uid_str); break; } case MW_BLACKLISTED: -- cgit From 6443695f275167adb123070daf2a6b6ecc0bb371 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Thu, 21 Jan 2010 02:56:53 +0100 Subject: abrtd: fix Report() dbus call gaping security holes We were blindly trusting the values passed to us Signed-off-by: Denys Vlasenko --- src/Daemon/Daemon.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src/Daemon/Daemon.cpp') diff --git a/src/Daemon/Daemon.cpp b/src/Daemon/Daemon.cpp index 829b2a7..83b1cee 100644 --- a/src/Daemon/Daemon.cpp +++ b/src/Daemon/Daemon.cpp @@ -328,7 +328,7 @@ static void FindNewDumps(const char* pPath) { case MW_OK: VERB1 log("Saving %s into database", itt->c_str()); - RunActionsAndReporters(get_crash_data_item_content(crashinfo, CD_MWDDD).c_str()); + RunActionsAndReporters(get_crash_data_item_content(crashinfo, CD_DUMPDIR).c_str()); break; case MW_IN_DB: VERB1 log("%s is already saved in database", itt->c_str()); @@ -479,14 +479,14 @@ static gboolean handle_inotify_cb(GIOChannel *gio, GIOCondition condition, gpoin try { std::string fullname = concat_path_file(DEBUG_DUMPS_DIR, name); - map_crash_data_t crashinfo; //todo: rename SaveDebugDump to ???? it does not save crashinfo, it FETCHES crashinfo + map_crash_data_t crashinfo; mw_result_t res = SaveDebugDump(fullname.c_str(), crashinfo); switch (res) { case MW_OK: log("New crash, saving"); - RunActionsAndReporters(get_crash_data_item_content(crashinfo, CD_MWDDD).c_str()); + RunActionsAndReporters(get_crash_data_item_content(crashinfo, CD_DUMPDIR).c_str()); /* Fall through */ case MW_REPORTED: case MW_OCCURED: @@ -494,8 +494,8 @@ static gboolean handle_inotify_cb(GIOChannel *gio, GIOCondition condition, gpoin if (res != MW_OK) log("Already saved crash, just sending dbus signal"); - const char *analyzer = get_crash_data_item_content(crashinfo, CD_MWANALYZER).c_str(); - const char *uid_str = get_crash_data_item_content(crashinfo, CD_UID).c_str(); + const char *analyzer = get_crash_data_item_content(crashinfo, FILENAME_ANALYZER).c_str(); + const char *uid_str = get_crash_data_item_content(crashinfo, FILENAME_UID).c_str(); /* Autoreport it if configured to do so */ if (analyzer_has_AutoReportUIDs(analyzer, uid_str)) @@ -525,7 +525,7 @@ static gboolean handle_inotify_cb(GIOChannel *gio, GIOCondition condition, gpoin /* Send dbus signal */ if (analyzer_has_InformAllUsers(analyzer)) uid_str = NULL; - g_pCommLayer->Crash(get_crash_data_item_content(crashinfo, CD_PACKAGE).c_str(), uid_str); + g_pCommLayer->Crash(get_crash_data_item_content(crashinfo, FILENAME_PACKAGE).c_str(), uid_str); break; } case MW_BLACKLISTED: -- cgit