Crash when deleting a service if no service is playing

Issue #416 resolved
prl created an issue

In the channel list (FAV from live TV), deleting an entry (MENU>remove entry) crashes if there is no service currently playing.

In ChannelListEdit, if getCurrentlyPlayingServiceOrGroup() returns None in the comparison ref == getCurrentlyPlayingServiceOrGroup(), the wrapper for eServiceReference::operator==() causes a crash when one of its arguments is None.

The problem is not related to issues with editing padded bouquets; it happens on both padded and unpadded bouquets.

Replication procedure

Do a channel scan from MENU>Setup>Tuners>Location scan. When it completes press OK to accept the scan, EXIT Setup, but don't change channel: leave the TV display as the fixed image from when the scan started. Then FAV, MENU>remove entry, answer yes in the popup, crash.

Comments (4)

  1. prl reporter

    There's a crash if you try to use MENU>find currently played service in the channel list if there is no service playing.

  2. Peter Urbanec

    Fix bug #416: Crash when deleting a service if no service is playing

    Fix bugs in ChannelSelection and associated screens that cause crashes when Navigation.getCurrentlyPlayingServiceOrGroup() returns None.

    Bugs fixed: For each bug below, do a channel scan from MENU>Setup>Tuners>Location scan. When it completes press OK to accept the scan, EXIT Setup, but don't change channel leave the TV display as the fixed image from when the scan started:

    * then FAV, MENU>remove entry, answer yes in the popup, crash;
    * then FAV, MENU>find currently played service in the channel list;
    * FAV, MENU>add alternatives, then RED (twice) for All.
    

    Also fixed a potential similar problem in ChannelSelectionBase.gotoCurrentServiceOrProvider that I couldn't find a replication path for.

    Most of the problems are due to eServiceReference::operator== being called for sref1 == sref2 when either sref1 or sref2 is None. There are similar problems with other eServiceReference operattor overloads.

    → <<cset dd0ce82f13a4>>

  3. Log in to comment