hud-service crashed with g-assert-if-reached in GMenu call from qtgmenu::QtGMenuModel::CreateChild()
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
hud (Ubuntu) |
Fix Released
|
Medium
|
Marcus Tomlinson | ||
Trusty |
Fix Released
|
Undecided
|
Pete Woods |
Bug Description
[Impact]
* Unknown GTK application causes HUD service to crash by sending invalid menu updates via GMenu.
[Test Case]
* Not reproducable so far.
[Regression Potential]
* Worst case is that somehow HUD doesn't work on the desktop and phone.
* There are, obviously, extensive unit and functional tests to verify this doesn't happen.
[Other Info]
* The patch will report the offending application to errors.ubuntu.com with all available debugging information.
* The indexes are now range checked before processing. As soon as a window sends any invalid message it is blocked.
* Further hardening around the memory management in QtGMenu has been carried out.
* The change is not as large as it at first appears. The majority of the diff is simply replacing Type* with QSharedPointer<
Related branches
- Antti Kaijanmäki (community): Approve
- PS Jenkins bot (community): Approve (continuous-integration)
-
Diff: 1441 lines (+508/-209)14 files modifieddata/hud.conf.in (+0/-12)
debian/changelog (+27/-0)
libqtgmenu/QtGMenuImporter.cpp (+2/-2)
libqtgmenu/QtGMenuImporter.h (+2/-2)
libqtgmenu/internal/QtGActionGroup.cpp (+31/-31)
libqtgmenu/internal/QtGActionGroup.h (+7/-3)
libqtgmenu/internal/QtGMenuImporterPrivate.cpp (+21/-13)
libqtgmenu/internal/QtGMenuImporterPrivate.h (+4/-3)
libqtgmenu/internal/QtGMenuModel.cpp (+331/-99)
libqtgmenu/internal/QtGMenuModel.h (+20/-17)
service/DBusMenuCollector.cpp (+9/-17)
service/HudServiceImpl.cpp (+45/-5)
service/HudServiceImpl.h (+5/-1)
tests/unit/qtgmenu/TestQtGMenu.cpp (+4/-4)
summary: |
- hud-service crashed with SIGABRT in g_assertion_message() + hud-service crashed with g-assert-if-reached in GMenu call from + qtgmenu::QtGMenuModel::CreateChild() |
information type: | Private → Public |
Changed in hud (Ubuntu): | |
assignee: | nobody → Marcus Tomlinson (marcustomlinson) |
status: | New → In Progress |
description: | updated |
description: | updated |
description: | updated |
Changed in hud (Ubuntu Trusty): | |
status: | New → In Progress |
assignee: | nobody → Pete Woods (pete-woods) |
Changed in hud (Ubuntu Trusty): | |
status: | Fix Committed → In Progress |
Changed in hud (Ubuntu): | |
status: | In Progress → Fix Committed |
Hi Jos, do you remember which application was in the foreground when this happened?