From 038b66d302a47396187c252d201130e7c0477eaa Mon Sep 17 00:00:00 2001 From: Jiri Date: Apr 02 2012 11:29:30 +0000 Subject: updated to latest upstream - fixed rhbz#808131 --- diff --git a/.gitignore b/.gitignore index 0323266..e787f5b 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ abrt-1.1.13.tar.gz /abrt-2.0.6.tar.gz /abrt-2.0.7.tar.gz /abrt-2.0.9.tar.gz +/abrt-2.0.10.tar.gz diff --git a/0002-gui-fixed-crash-when-chowning-directory-using-dbus-c.patch b/0002-gui-fixed-crash-when-chowning-directory-using-dbus-c.patch new file mode 100644 index 0000000..cfe7a97 --- /dev/null +++ b/0002-gui-fixed-crash-when-chowning-directory-using-dbus-c.patch @@ -0,0 +1,28 @@ +From 4776f9e6b84482047d75aa9b36ac5c4db29c06a0 Mon Sep 17 00:00:00 2001 +Message-Id: <4776f9e6b84482047d75aa9b36ac5c4db29c06a0.1333282746.git.jmoskovc@redhat.com> +In-Reply-To: +References: +From: Jiri Moskovcak +Date: Sun, 1 Apr 2012 01:04:27 +0200 +Subject: [PATCH 2/5] gui: fixed crash when chowning directory using dbus call + +--- + src/gui-gtk/main.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/gui-gtk/main.c b/src/gui-gtk/main.c +index 02e5c48..e80d1c7 100644 +--- a/src/gui-gtk/main.c ++++ b/src/gui-gtk/main.c +@@ -398,7 +398,7 @@ static gboolean on_focus_cb( + + static int chown_dir_over_dbus(const char *problem_dir_path) + { +- GError *error; ++ GError *error = NULL; + GDBusProxy * proxy = g_dbus_proxy_new_for_bus_sync(G_BUS_TYPE_SYSTEM, + G_DBUS_PROXY_FLAGS_NONE, + NULL, +-- +1.7.9.3 + diff --git a/0003-dbus-use-the-helper-dir_accessible_by_uid-more-consi.patch b/0003-dbus-use-the-helper-dir_accessible_by_uid-more-consi.patch new file mode 100644 index 0000000..732b214 --- /dev/null +++ b/0003-dbus-use-the-helper-dir_accessible_by_uid-more-consi.patch @@ -0,0 +1,97 @@ +From 9cade723ad0d267aaae2aa93bfb8288e2d7a1ba8 Mon Sep 17 00:00:00 2001 +Message-Id: <9cade723ad0d267aaae2aa93bfb8288e2d7a1ba8.1333282746.git.jmoskovc@redhat.com> +In-Reply-To: +References: +From: Jiri Moskovcak +Date: Sun, 1 Apr 2012 13:41:39 +0200 +Subject: [PATCH 3/5] dbus: use the helper dir_accessible_by_uid() more + consistently + +--- + src/dbus/abrt-dbus.c | 44 +++++++++++++++----------------------------- + 1 file changed, 15 insertions(+), 29 deletions(-) + +diff --git a/src/dbus/abrt-dbus.c b/src/dbus/abrt-dbus.c +index e72cd30..0c7af5c 100644 +--- a/src/dbus/abrt-dbus.c ++++ b/src/dbus/abrt-dbus.c +@@ -144,7 +144,7 @@ static int dir_accessible_by_uid(const char* dir_path, uid_t uid) + struct stat statbuf; + if (stat(dir_path, &statbuf) == 0 && S_ISDIR(statbuf.st_mode)) + { +- if (uid == 0 || uid_in_group(uid, statbuf.st_gid)) ++ if (uid == 0 || (statbuf.st_mode & S_IROTH) || uid_in_group(uid, statbuf.st_gid)) + { + VERB1 log("caller has access to the requested directory %s", dir_path); + return 1; +@@ -293,28 +293,15 @@ static void handle_method_call(GDBusConnection *connection, + return; + } + +- struct stat statbuf; +- errno = 0; +- if (stat(problem_dir, &statbuf) == 0 && S_ISDIR(statbuf.st_mode)) +- { +- if (caller_uid == 0 || uid_in_group(caller_uid, statbuf.st_gid)) //caller seems to be in group with access to this dir, so no action needed +- { +- VERB1 log("caller has access to the requested directory %s", problem_dir); +- g_dbus_method_invocation_return_value(invocation, NULL); +- dd_close(dd); +- return; +- } +- +- } +- else ++ if(dir_accessible_by_uid(problem_dir, caller_uid)) //caller seems to be in group with access to this dir, so no action needed + { +- g_dbus_method_invocation_return_dbus_error(invocation, +- "org.freedesktop.problems.StatFailure", +- strerror(errno)); ++ VERB1 log("caller has access to the requested directory %s", problem_dir); ++ g_dbus_method_invocation_return_value(invocation, NULL); + dd_close(dd); + return; + } + ++ + if (polkit_check_authorization_dname(caller, "org.freedesktop.problems.getall") != PolkitYes) + { + VERB1 log("not authorized"); +@@ -329,6 +316,15 @@ static void handle_method_call(GDBusConnection *connection, + if (pwd) + { + errno = 0; ++ struct stat statbuf; ++ if (!(stat(problem_dir, &statbuf) == 0 && S_ISDIR(statbuf.st_mode))) ++ { ++ g_dbus_method_invocation_return_dbus_error(invocation, ++ "org.freedesktop.problems.StatFailure", ++ strerror(errno)); ++ return; ++ } ++ + chown_res = chown(problem_dir, statbuf.st_uid, pwd->pw_gid); + dd_init_next_file(dd); + char *short_name, *full_name; +@@ -361,17 +357,7 @@ static void handle_method_call(GDBusConnection *connection, + + GVariantBuilder *builder; + +- struct stat statbuf; +- errno = 0; +- if (stat(problem_dir, &statbuf) != 0) +- { +- g_dbus_method_invocation_return_dbus_error(invocation, +- "org.freedesktop.problems.GetInfoError", +- strerror(errno)); +- return; +- } +- +- if (!uid_in_group(caller_uid, statbuf.st_gid)) ++ if (!dir_accessible_by_uid(problem_dir, caller_uid)) + { + if (polkit_check_authorization_dname(caller, "org.freedesktop.problems.getall") != PolkitYes) + { +-- +1.7.9.3 + diff --git a/abrt.spec b/abrt.spec index 55d3e29..ba10530 100644 --- a/abrt.spec +++ b/abrt.spec @@ -24,7 +24,7 @@ Summary: Automatic bug detection and reporting tool Name: abrt -Version: 2.0.9 +Version: 2.0.10 Release: 1%{?dist} License: GPLv2+ Group: Applications/System @@ -34,6 +34,8 @@ Source1: abrt1_to_abrt2 Patch0: abrt-rhelkeys.patch Patch1: blacklist.patch Patch2: abrt_disable_gpgcheck.diff +Patch3: 0002-gui-fixed-crash-when-chowning-directory-using-dbus-c.patch +Patch4: 0003-dbus-use-the-helper-dir_accessible_by_uid-more-consi.patch BuildRequires: dbus-devel BuildRequires: gtk2-devel BuildRequires: rpm-devel >= 4.6 @@ -48,7 +50,7 @@ BuildRequires: libtool BuildRequires: nss-devel BuildRequires: asciidoc BuildRequires: xmlto -BuildRequires: libreport-devel > 2.0.6 +BuildRequires: libreport-devel >= 2.0.10-2 BuildRequires: btparser-devel BuildRequires: elfutils-devel BuildRequires: elfutils-libelf-devel @@ -90,6 +92,7 @@ Development libraries and headers for %{name}. Summary: %{name}'s gui Group: User Interface/Desktops Requires: %{name} = %{version}-%{release} +Requires: %{name}-dbus = %{version}-%{release} BuildRequires: libreport-gtk-devel # we used to have abrt-applet, now abrt-gui includes it: Provides: abrt-applet = %{version}-%{release} @@ -232,6 +235,8 @@ uses PolicyKit to authorize to access the problem data. #Fedora %patch1 -p1 -b .blacklist %patch2 -p1 -b .gpgcheck +%patch3 -p1 +%patch4 -p1 %build autoconf @@ -632,6 +637,11 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_datadir}/polkit-1/actions/abrt_polkit.policy %changelog +* Mon Apr 02 2012 Jiri Moskovcak 2.0.10-1 +- new upstream release +- fixed problem with empty problem directory rhzb#808131 +- Resolves: #808131 + * Mon Mar 19 2012 Jiri Moskovcak 2.0.7-7 - fixed problems with rhel gpg keys rhbz#800419 diff --git a/sources b/sources index ae25664..1c2b942 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -29598a2d5851ed820b1b5b030b8e9a42 abrt-2.0.9.tar.gz +82109d1d6d216a7e28a581190b89c1e7 abrt-2.0.10.tar.gz