diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/input/input_dvb.c | 17 |
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); |