]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
xmltv: really fix the xmltv_appendit(), fixes #5194
authorJaroslav Kysela <perex@perex.cz>
Tue, 11 Sep 2018 17:43:03 +0000 (19:43 +0200)
committerJaroslav Kysela <perex@perex.cz>
Tue, 11 Sep 2018 17:43:03 +0000 (19:43 +0200)
src/epggrab/module/xmltv.c

index 776907bda453d2d751498104e195de0280990ee3..fada66c286f4fe1c829e0cba952733900b8f2fe4 100644 (file)
@@ -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;
   }
 }