]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
xmltv: fix xmltv_appendit() - NULL desc, fixes #5167
authorJaroslav Kysela <perex@perex.cz>
Fri, 7 Sep 2018 13:11:33 +0000 (15:11 +0200)
committerJaroslav Kysela <perex@perex.cz>
Fri, 7 Sep 2018 13:11:33 +0000 (15:11 +0200)
src/epggrab/module/xmltv.c

index 53e0acf545ac039837f05f45c261b99f42aa6be9..bf963494c4cc243f1a7b9ebc2e6132fd02e7a822 100644 (file)
@@ -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);