From f2930e6870e33f56d033ac84a382b50a1a6869ca Mon Sep 17 00:00:00 2001 From: Richard Hughes Date: Jan 27 2012 17:29:26 +0000 Subject: Fix another gnome-settings-daemon crash --- diff --git a/PackageKit.spec b/PackageKit.spec index 7629b66..cbc15de 100644 --- a/PackageKit.spec +++ b/PackageKit.spec @@ -3,7 +3,7 @@ Summary: Package management service Name: PackageKit Version: 0.7.2 -Release: 4%{?dist} +Release: 5%{?dist} License: GPLv2+ and LGPLv2+ URL: http://www.packagekit.org Source0: http://www.packagekit.org/releases/%{name}-%{version}.tar.xz @@ -461,6 +461,9 @@ update-mime-database %{_datadir}/mime &> /dev/null || : %{_libdir}/pkgconfig/packagekit-plugin.pc %changelog +* Fri Jan 27 2012 Richard Hughes - 0.7.2-5 +- Fix another gnome-settings-daemon crash + * Thu Jan 26 2012 Richard Hughes - 0.7.2-4 - Add back the preupgrade Require to fix a warning in g-s-d. diff --git a/null-is-not-a-string.patch b/null-is-not-a-string.patch index fe1e460..78b664f 100644 --- a/null-is-not-a-string.patch +++ b/null-is-not-a-string.patch @@ -1,7 +1,41 @@ -diff -up PackageKit-0.7.2/lib/packagekit-glib2/pk-control.c.null PackageKit-0.7.2/lib/packagekit-glib2/pk-control.c ---- PackageKit-0.7.2/lib/packagekit-glib2/pk-control.c.null 2012-01-20 00:02:52.422053263 -0500 -+++ PackageKit-0.7.2/lib/packagekit-glib2/pk-control.c 2012-01-20 00:04:04.368050690 -0500 -@@ -1175,12 +1175,12 @@ pk_control_set_proxy2_async (PkControl * +diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c +index f6d4026..9acb1ba 100644 +--- a/lib/packagekit-glib2/pk-client.c ++++ b/lib/packagekit-glib2/pk-client.c +@@ -1426,7 +1426,7 @@ pk_client_proxy_connect (PkClientState *state) + + /* coldplug properties */ + props = g_dbus_proxy_get_cached_property_names (state->proxy); +- for (i = 0; props[i] != NULL; i++) { ++ for (i = 0; props != NULL && props[i] != NULL; i++) { + value_tmp = g_dbus_proxy_get_cached_property (state->proxy, + props[i]); + pk_client_set_property_value (state, +@@ -1844,8 +1844,8 @@ pk_client_set_hints_cb (GObject *source_object, + g_dbus_proxy_call (state->proxy, "RepoSetData", + g_variant_new ("(sss)", + state->repo_id, +- state->parameter, +- state->value), ++ state->parameter ? state->parameter : "", ++ state->value ? state->value : ""), + G_DBUS_CALL_FLAGS_NONE, + PK_CLIENT_DBUS_METHOD_TIMEOUT, + state->cancellable, +diff --git a/lib/packagekit-glib2/pk-control.c b/lib/packagekit-glib2/pk-control.c +index 3ae9d94..e205dcb 100644 +--- a/lib/packagekit-glib2/pk-control.c ++++ b/lib/packagekit-glib2/pk-control.c +@@ -377,7 +377,7 @@ pk_control_proxy_connect (PkControlState *state) + + /* coldplug properties */ + props = g_dbus_proxy_get_cached_property_names (state->proxy); +- for (i = 0; props[i] != NULL; i++) { ++ for (i = 0; props != NULL && props[i] != NULL; i++) { + value_tmp = g_dbus_proxy_get_cached_property (state->proxy, + props[i]); + pk_control_set_property_value (state->control, +@@ -1175,12 +1175,13 @@ pk_control_set_proxy2_async (PkControl *control, state->res = g_object_ref (res); state->control = g_object_ref (control); state->parameters = g_variant_new ("(ssssss)", @@ -17,6 +51,33 @@ diff -up PackageKit-0.7.2/lib/packagekit-glib2/pk-control.c.null PackageKit-0.7. + proxy_socks ? proxy_socks : "", + no_proxy ? no_proxy : "", + pac ? pac : ""); ++ g_variant_ref_sink (state->parameters); + if (cancellable != NULL) + state->cancellable = g_object_ref (cancellable); + +@@ -1425,7 +1426,8 @@ pk_control_set_root_async (PkControl *control, + state = g_slice_new0 (PkControlState); + state->res = g_object_ref (res); + state->control = g_object_ref (control); +- state->parameters = g_variant_new ("(s)", root); ++ state->parameters = g_variant_new ("(s)", root ? root : ""); ++ g_variant_ref_sink (state->parameters); + if (cancellable != NULL) + state->cancellable = g_object_ref (cancellable); + +@@ -1862,6 +1864,7 @@ pk_control_get_time_since_action_async (PkControl *control, + state->res = g_object_ref (res); + state->control = g_object_ref (control); + state->parameters = g_variant_new ("(s)", pk_role_enum_to_string (role)); ++ g_variant_ref_sink (state->parameters); + if (cancellable != NULL) + state->cancellable = g_object_ref (cancellable); + +@@ -2081,6 +2084,7 @@ pk_control_can_authorize_async (PkControl *control, + state->res = g_object_ref (res); + state->control = g_object_ref (control); + state->parameters = g_variant_new ("(s)", action_id); ++ g_variant_ref_sink (state->parameters); if (cancellable != NULL) state->cancellable = g_object_ref (cancellable);