summaryrefslogtreecommitdiff
path: root/src/modules/rtv/rtv.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/rtv/rtv.c')
-rw-r--r--src/modules/rtv/rtv.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/modules/rtv/rtv.c b/src/modules/rtv/rtv.c
index 06dfd90..08f4b8a 100644
--- a/src/modules/rtv/rtv.c
+++ b/src/modules/rtv/rtv.c
@@ -409,8 +409,11 @@ static int rtv_setup(const til_settings_t *settings, til_setting_t **res_setting
til_get_modules(&modules, &n_modules);
tokchannels = strdup(channels);
- if (!tokchannels)
+ if (!tokchannels) {
+ til_setup_free(&setup->til_setup);
+
return -ENOMEM;
+ }
channel = strtok(tokchannels, ":");
do {
@@ -422,12 +425,16 @@ static int rtv_setup(const til_settings_t *settings, til_setting_t **res_setting
break;
}
- if (i >= n_modules)
+ if (i >= n_modules) {
+ til_setup_free(&setup->til_setup);
+
return -EINVAL;
+ }
new = realloc(setup, sizeof(*setup) + n * sizeof(setup->channels[0]));
if (!new) {
- free(setup);
+ til_setup_free(&setup->til_setup);
+
return -ENOMEM;
}
© All Rights Reserved