From: Jaroslav Kysela Date: Tue, 11 Sep 2018 17:43:03 +0000 (+0200) Subject: xmltv: really fix the xmltv_appendit(), fixes #5194 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4f3bb16fa20fc12d68d56452b21701bc14d622af;p=thirdparty%2Ftvheadend.git xmltv: really fix the xmltv_appendit(), fixes #5194 --- diff --git a/src/epggrab/module/xmltv.c b/src/epggrab/module/xmltv.c index 776907bda..fada66c28 100644 --- a/src/epggrab/module/xmltv.c +++ b/src/epggrab/module/xmltv.c @@ -599,19 +599,24 @@ _xmltv_parse_credits(htsmsg_t **out_credits, htsmsg_t *tags) * Convert the string list to a human-readable csv and append * it to the desc with a prefix of name. */ -static void xmltv_appendit(lang_str_t **desc, string_list_t *list, const char *name) +static void xmltv_appendit(lang_str_t **_desc, string_list_t *list, const char *name) { + lang_str_t *desc; + lang_str_ele_t *e; if (!list) return; - if (!*desc) *desc = lang_str_create(); char *str = string_list_2_csv(list, ',', 1); - if (str) { - lang_str_ele_t *e; - RB_FOREACH(e, *desc, link) { - lang_str_append(*desc, "\n\n", e->lang); - lang_str_append(*desc, tvh_gettext_lang(e->lang, name), e->lang); - lang_str_append(*desc, str, e->lang); - } - free(str); + if (!str) return; + desc = NULL; + RB_FOREACH(e, *_desc, link) { + if (!desc) desc = lang_str_create(); + lang_str_append(desc, "\n\n", e->lang); + lang_str_append(desc, tvh_gettext_lang(e->lang, name), e->lang); + lang_str_append(desc, str, e->lang); + } + free(str); + if (desc) { + lang_str_destroy(*_desc); + *_desc = desc; } }