From: Jaroslav Kysela Date: Fri, 7 Sep 2018 13:11:33 +0000 (+0200) Subject: xmltv: fix xmltv_appendit() - NULL desc, fixes #5167 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f574438c9f6042a6787c954cdc480f76c48eb9dd;p=thirdparty%2Ftvheadend.git xmltv: fix xmltv_appendit() - NULL desc, fixes #5167 --- diff --git a/src/epggrab/module/xmltv.c b/src/epggrab/module/xmltv.c index 53e0acf54..bf963494c 100644 --- a/src/epggrab/module/xmltv.c +++ b/src/epggrab/module/xmltv.c @@ -599,16 +599,17 @@ _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) { 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); + 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); } @@ -680,9 +681,9 @@ static int _xmltv_parse_programme_tags * don't display them. */ if (desc && scrape_onto_desc) { - xmltv_appendit(desc, credits_names, N_("Credits: ")); - xmltv_appendit(desc, category, N_("Categories: ")); - xmltv_appendit(desc, keyword, N_("Keywords: ")); + xmltv_appendit(&desc, credits_names, N_("Credits: ")); + xmltv_appendit(&desc, category, N_("Categories: ")); + xmltv_appendit(&desc, keyword, N_("Keywords: ")); } if (credits) htsmsg_destroy(credits);