Unity8 (QtMir) crashed (on login or display change) in TiledDisplayConfigurationPolicy::apply_to() [tileddisplayconfigurationpolicy.cpp:41]

Bug #1560497 reported by errors.ubuntu.com bug bridge
22
This bug affects 3 people
Affects Status Importance Assigned to Milestone
qtmir (Ubuntu)
Fix Released
High
Daniel van Vugt
unity8 (Ubuntu)
Invalid
Undecided
Unassigned

Bug Description

The Ubuntu Error Tracker has been receiving reports about a problem regarding unity8. This problem was most recently seen with version 8.11+16.04.20160310.4-0ubuntu1, the problem page at https://errors.ubuntu.com/problem/ad2b8406e4a16551fc78ba9793cc41fe4d801653 contains more details.

Tags: xenial

Related branches

Changed in unity8 (Ubuntu):
status: New → Invalid
summary: - /usr/bin/unity8:11:TiledDisplayConfigurationPolicy:::std::_Function_handler:std::function:mir::graphics::nested::NestedDisplayConfiguration:::std::for_each
+ Unity8 crashed in TiledDisplayConfigurationPolicy
+ [tileddisplayconfigurationpolicy.cpp:41]
affects: mir → qtmir
no longer affects: mir (Ubuntu)
Revision history for this message
Daniel van Vugt (vanvugt) wrote : Re: Unity8 crashed in TiledDisplayConfigurationPolicy [tileddisplayconfigurationpolicy.cpp:41]

It's a simple array overrun in QtMir:

                nextTopLeftPosition += output.modes[output.preferred_mode_index].size.width.as_int();

Looks like it's missing a check for the possibility of there being no preferred mode:

    output.preferred_mode_index >= modes.size()

Which is possible, and almost common (particularly on TVs).

Changed in qtmir:
importance: Undecided → High
Changed in qtmir (Ubuntu):
importance: Undecided → High
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

We also encountered this issue back in 2014:

https://code.launchpad.net/~vanvugt/mir/fix-1395405/+merge/242583

Changed in qtmir:
status: New → Triaged
Changed in qtmir (Ubuntu):
status: New → Triaged
summary: - Unity8 crashed in TiledDisplayConfigurationPolicy
+ Unity8 (QtMir) crashed in TiledDisplayConfigurationPolicy
[tileddisplayconfigurationpolicy.cpp:41]
summary: - Unity8 (QtMir) crashed in TiledDisplayConfigurationPolicy
+ Unity8 (QtMir) crashed in TiledDisplayConfigurationPolicy::apply_to()
[tileddisplayconfigurationpolicy.cpp:41]
Changed in qtmir:
assignee: nobody → Daniel van Vugt (vanvugt)
Changed in qtmir (Ubuntu):
assignee: nobody → Daniel van Vugt (vanvugt)
Changed in qtmir:
status: Triaged → In Progress
summary: - Unity8 (QtMir) crashed in TiledDisplayConfigurationPolicy::apply_to()
+ Unity8 (QtMir) crashed (on login or display change) in
+ TiledDisplayConfigurationPolicy::apply_to()
[tileddisplayconfigurationpolicy.cpp:41]
Michał Sawicz (saviq)
Changed in qtmir (Ubuntu):
status: Triaged → In Progress
Changed in qtmir:
status: In Progress → Fix Committed
status: Fix Committed → In Progress
Changed in qtmir:
status: In Progress → Fix Committed
Changed in qtmir (Ubuntu):
status: In Progress → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package qtmir - 0.4.8+16.04.20160329.1-0ubuntu1

---------------
qtmir (0.4.8+16.04.20160329.1-0ubuntu1) xenial; urgency=medium

  [ Daniel van Vugt ]
  * Don't use preferred_mode_index. Some devices like TVs don't provide
    a preferred mode, so preferred_mode_index may be out of range (a
    clumsy way to represent 'none'). Instead use the resolution of the
    current display mode, which should always be in range. (LP:
    #1560497)

 -- Michał Sawicz <email address hidden> Tue, 29 Mar 2016 19:24:13 +0000

Changed in qtmir (Ubuntu):
status: Fix Committed → Fix Released
Gerry Boland (gerboland)
Changed in qtmir:
status: Fix Committed → Fix Released
Michał Sawicz (saviq)
no longer affects: qtmir
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.