From 7f10181be367d77e5f3203e938ab24cf722119df Mon Sep 17 00:00:00 2001 From: Nikola Pajkovsky Date: Thu, 29 Oct 2009 15:20:56 +0100 Subject: Normal user can see kerneloops and report it Bugzilla memory leaks fix --- src/Applet/Applet.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src/Applet/Applet.cpp') diff --git a/src/Applet/Applet.cpp b/src/Applet/Applet.cpp index 9d7be5f..c2d5467 100644 --- a/src/Applet/Applet.cpp +++ b/src/Applet/Applet.cpp @@ -20,6 +20,7 @@ #include #include #include +#include #if HAVE_CONFIG_H #include #endif @@ -63,9 +64,13 @@ static void Crash(DBusMessage* signal) //if (m_pSessionDBus->has_name("com.redhat.abrt.gui")) // return; - uid_t uid_num = atoi(uid_str); +// uid_t uid_num = atol(uid_str); - if (uid_num != getuid()) + char* endptr; + uid_t uid_num = (uid_t)strtoul(uid_str,&endptr, 10); + + printf("%u:%s\n", uid_num, uid_str); + if ((uid_num != getuid()) && (uid_num != UINT_MAX)) return; const char* message = _("A crash in package %s has been detected"); -- cgit From 1da192165c145805c32e2e13afbccc52b8a76ab6 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Mon, 2 Nov 2009 14:53:26 +0100 Subject: s/CC_DBUS_/ABRTD_DBUS_/g Signed-off-by: Denys Vlasenko --- src/Applet/Applet.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/Applet/Applet.cpp') diff --git a/src/Applet/Applet.cpp b/src/Applet/Applet.cpp index c2d5467..ea58b25 100644 --- a/src/Applet/Applet.cpp +++ b/src/Applet/Applet.cpp @@ -246,7 +246,7 @@ int main(int argc, char** argv) "Problem connecting to dbus, or applet is already running"); /* Show disabled icon if daemon is not running */ - if (!dbus_bus_name_has_owner(system_conn, CC_DBUS_NAME, &err)) + if (!dbus_bus_name_has_owner(system_conn, ABRTD_DBUS_NAME, &err)) { const char* msg = _("ABRT service is not running"); puts(msg); -- cgit From e8eefb19c47a7f4e7481d1f6460f8632e09bd76e Mon Sep 17 00:00:00 2001 From: Nikola Pajkovsky Date: Tue, 3 Nov 2009 12:15:55 +0100 Subject: kerneloop has uid = -1 new --- src/Applet/Applet.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/Applet/Applet.cpp') diff --git a/src/Applet/Applet.cpp b/src/Applet/Applet.cpp index ea58b25..327e24f 100644 --- a/src/Applet/Applet.cpp +++ b/src/Applet/Applet.cpp @@ -67,12 +67,12 @@ static void Crash(DBusMessage* signal) // uid_t uid_num = atol(uid_str); char* endptr; - uid_t uid_num = (uid_t)strtoul(uid_str,&endptr, 10); + int64_t uid_num = strtoll(uid_str,&endptr, 10); - printf("%u:%s\n", uid_num, uid_str); - if ((uid_num != getuid()) && (uid_num != UINT_MAX)) + if ((uid_num != getuid()) && (uid_num != -1)) + { return; - + } const char* message = _("A crash in package %s has been detected"); //applet->AddEvent(uid, progname); applet->SetIconTooltip(message, progname); -- cgit From 64c5d35aebc38f93ce5c086c15c15de5acb21b2f Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Thu, 5 Nov 2009 17:21:11 +0100 Subject: InformAllUsers support. enabled by default for Kerneloops. Tested wuth CCpp. Signed-off-by: Denys Vlasenko --- src/Applet/Applet.cpp | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) (limited to 'src/Applet/Applet.cpp') diff --git a/src/Applet/Applet.cpp b/src/Applet/Applet.cpp index 327e24f..2eed556 100644 --- a/src/Applet/Applet.cpp +++ b/src/Applet/Applet.cpp @@ -49,13 +49,12 @@ static void Crash(DBusMessage* signal) dbus_message_iter_init(signal, &in_iter); const char* progname; r = load_val(&in_iter, progname); - if (r != ABRT_DBUS_MORE_FIELDS) + /* Optional 2nd param: uid */ + const char* uid_str = NULL; + if (r == ABRT_DBUS_MORE_FIELDS) { - error_msg("dbus signal %s: parameter type mismatch", __func__); - return; + r = load_val(&in_iter, uid_str); } - const char* uid_str; - r = load_val(&in_iter, uid_str); if (r != ABRT_DBUS_LAST_FIELD) { error_msg("dbus signal %s: parameter type mismatch", __func__); @@ -66,13 +65,17 @@ static void Crash(DBusMessage* signal) // return; // uid_t uid_num = atol(uid_str); - char* endptr; - int64_t uid_num = strtoll(uid_str,&endptr, 10); - - if ((uid_num != getuid()) && (uid_num != -1)) + if (uid_str != NULL) { - return; + char *end; + errno = 0; + unsigned long uid_num = strtoul(uid_str, &end, 10); + if (errno || *end != '\0' || uid_num != getuid()) + { + return; + } } + const char* message = _("A crash in package %s has been detected"); //applet->AddEvent(uid, progname); applet->SetIconTooltip(message, progname); -- cgit