Crashes in EPG if HDMI IN is in current bouquet

Issue #662 resolved
prl created an issue

If HDMI IN is in the current bouquet and either REC (instant timer) or GREEN Change Timer (not GREEN Add Timer) is pressed, the UI will crash if the service in focus is after HDMI IN in the bouquet order. The functions work properly if the service in focus is before HDMI IN in the list.

The problem is due to EPGList.getIndexFromService() returning None if a non-DVB TV service (service type != 1) is encountered in the service list before the service in EPG focus is found.

EPGList.getSelectionPosition() is also too fragile and doesn't fall back gracefully if getIndexFromService() returns None.

Replication steps

Add HDMI IN to some convenient bouquet (e.g. Favourites (TV)), and move it so it is part-way down the service list, with some DVB services both before and after it.

Then, from live TV, press EPG.

In the EPG, navigate to a service before (above) HDMI IN in the EPG screen and to an event with no timer active for it.

Press REC: normal Add Timer/Add AutoTimer popup menu. EXIT to cancel the recording request.

Navigate to an event without a timer in a service after (below) HDMI IN.

Press REC. Crash.

Comments (2)

  1. Peter Urbanec

    Fix bug #662: Crashes in EPG if HDMI IN is in current bouquet

    Remove None return from EPGList.getIndexFromService() if any non-DVB service e.g. HDMI IN is found.

    Make EPGList.getSelectionPosition() fallback gracefully if getIndexFromService() returns None.

    Have a single call point of getIndexFromService() in getSelectionPosition().

    → <<cset 11466a8d199f>>

  2. Log in to comment