From 5503c1f3bf18cc0f74913040f7fc91ad7a70daf6 Mon Sep 17 00:00:00 2001 From: Darren Salt Date: Fri, 8 Dec 2006 22:26:22 +0000 Subject: Prevent segfaults on out-of-range last_channel. CVS patchset: 8408 CVS date: 2006/12/08 22:26:22 --- src/input/input_dvb.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) (limited to 'src/input/input_dvb.c') 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); -- cgit v1.2.3 From 45c71725f5672cd446652f93184a8a6c48c8b0e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20=27Flameeyes=27=20Petten=C3=B2?= Date: Thu, 18 Jan 2007 23:02:18 +0000 Subject: Make get_description function return a const char * rather than just a char *, so that 'return "something"' is valid. Note that _()/gettext() returns a char * but statically allocated, that the documentation considers constant. CVS patchset: 8519 CVS date: 2007/01/18 23:02:18 --- src/input/input_dvb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/input/input_dvb.c') diff --git a/src/input/input_dvb.c b/src/input/input_dvb.c index dbec9ff17..3bc9008a7 100644 --- a/src/input/input_dvb.c +++ b/src/input/input_dvb.c @@ -3085,7 +3085,7 @@ static input_plugin_t *dvb_class_get_instance (input_class_t *class_gen, * dvb input plugin class stuff */ -static char *dvb_class_get_description (input_class_t *this_gen) { +static const char *dvb_class_get_description (input_class_t *this_gen) { return _("DVB (Digital TV) input plugin"); } -- cgit v1.2.3 From 17d470f75b57265107c7f164334dbc53489124cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20=27Flameeyes=27=20Petten=C3=B2?= Date: Fri, 19 Jan 2007 01:05:24 +0000 Subject: Make get_mrl return a const char * too. CVS patchset: 8524 CVS date: 2007/01/19 01:05:24 --- src/input/input_dvb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/input/input_dvb.c') diff --git a/src/input/input_dvb.c b/src/input/input_dvb.c index 3bc9008a7..39507ac15 100644 --- a/src/input/input_dvb.c +++ b/src/input/input_dvb.c @@ -2651,7 +2651,7 @@ static void dvb_plugin_dispose (input_plugin_t *this_gen) { free (this); } -static char* dvb_plugin_get_mrl (input_plugin_t *this_gen) { +static const char* dvb_plugin_get_mrl (input_plugin_t *this_gen) { dvb_input_plugin_t *this = (dvb_input_plugin_t *) this_gen; return this->mrl; -- cgit v1.2.3