exporter: give error on Describe of missing action
authorRyan Lortie <desrt@desrt.ca>
Mon, 28 Oct 2013 21:49:14 +0000 (14:49 -0700)
committerRyan Lortie <desrt@desrt.ca>
Tue, 29 Oct 2013 01:08:21 +0000 (18:08 -0700)
If someone calls org.gtk.Actions.Describe on a non-existent action then
return an exception instead of a trivial description (disabled, no
state, etc.).

https://bugzilla.gnome.org/show_bug.cgi?id=687185

gio/gactiongroupexporter.c

index c906344021a2d1026b7c1c8a4c21633780b0be04..2e1e8f4b9106f7dd334344e79e8427a49302135a 100644 (file)
@@ -380,6 +380,14 @@ org_gtk_Actions_method_call (GDBusConnection       *connection,
       GVariant *desc;
 
       g_variant_get (parameters, "(&s)", &name);
+
+      if (!g_action_group_has_action (exporter->action_group, name))
+        {
+          g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS,
+                                                 "The named action does not exist.");
+          return;
+        }
+
       desc = g_action_group_describe_action (exporter->action_group, name);
       result = g_variant_new ("(@(bgav))", desc);
     }