summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/input/input_dvb.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/src/input/input_dvb.c b/src/input/input_dvb.c
index 8d06cb61e..dbec9ff17 100644
--- a/src/input/input_dvb.c
+++ b/src/input/input_dvb.c
@@ -3183,15 +3183,14 @@ static char **dvb_class_get_autoplay_list(input_class_t * this_gen,
}
if (lastchannel_enable.num_value){
- if (lastchannel.num_value>-1) /* plugin has been used before - channel is valid */
- sprintf(foobuffer,"dvb://%s",channels[lastchannel.num_value].name);
- else /* set a reasonable default - the first channel */
- sprintf(foobuffer,"dvb://%s",channels[lastchannel_enable.num_value].name);
- if(class->autoplaylist[0])
- free(class->autoplaylist[0]);
- class->autoplaylist[0]=xine_xmalloc(128);
- _x_assert(class->autoplaylist[0] != NULL);
- class->autoplaylist[0]=strdup(foobuffer);
+ if (lastchannel.num_value > -1 && lastchannel.num_value < num_channels)
+ /* plugin has been used before - channel is valid */
+ sprintf (foobuffer, "dvb://%s", channels[lastchannel.num_value].name);
+ else
+ /* set a reasonable default - the first channel */
+ sprintf (foobuffer, "dvb://%s", num_channels ? channels[0].name : "0");
+ free(class->autoplaylist[0]);
+ class->autoplaylist[0]=strdup(foobuffer);
}
free(tmpbuffer);