** Description changed:

- Dbusmenu seems to assume in multiple places that g_variant_parse()
- returns a floating reference. It doesn't, so these GVariant's are
- leaked.
+ [Impact]
+ 
+  * Affected applications with a high number of menu updates reach the maximum 
value allowed for the ID of a menuitem, and rejects further menu changes. 
Because the application underneath the menu has already removed the underlying 
actual GtkMenuItem objects, it is impossible to activate the items -- to effect 
the actions linked to the menuitems.
+  * Some indicators have a relatively high and climbing memory usage due to 
the way they build menus to be displayed in the panel.
+ 
+ [Test Case]
+ 
+  * Run nm-applet for a while (multiple days without shutdown, without killing 
the application), notice whether the menus are still usable.
+  * Run indicators for a while, observe memory usage.
+ 
+ [Regression Potential]
+ 
+ Indicators with a very high amount of updates may be affected as circling 
back past the maximum value, if a new menu item is created with an ID still in 
use by a menuitem that has not been removed yet, neither or only one of the two 
menu items might be available to be clicked -- this could confuse users or 
cause error messages to be displayed.
+ Risk is low however since network-manager-gnome (nm-applet) is currently the 
application with the most menu updates.
+ 
+ [Other Info]
+ Dbusmenu seems to assume in multiple places that g_variant_parse() returns a 
floating reference. It doesn't, so these GVariant's are leaked.
  
  It does things like:
  
-   g_variant_builder_add_value(&builder, g_variant_parse(....));
+   g_variant_builder_add_value(&builder, g_variant_parse(....));
  
-   GVariant *variant = g_variant_parse(....);
-   g_variant_ref_sink(variant);
-   ...
-   g_variant_unref(variant);
+   GVariant *variant = g_variant_parse(....);
+   g_variant_ref_sink(variant);
+   ...
+   g_variant_unref(variant);
  
  Both of these cases result in a leak

** Changed in: libdbusmenu (Ubuntu Precise)
       Status: New => Triaged

** Changed in: libdbusmenu (Ubuntu Quantal)
       Status: New => Triaged

** Changed in: libdbusmenu (Ubuntu Precise)
   Importance: Undecided => Medium

** Changed in: libdbusmenu (Ubuntu Precise)
   Importance: Medium => High

** Changed in: libdbusmenu (Ubuntu Quantal)
   Importance: Undecided => High

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1104136

Title:
  Leaks GVariant's in multiple places

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/libdbusmenu/+bug/1104136/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to