]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
FIX: Crash due to NULL pointer access
authorJörg Dembski <gymlet@gmx.de>
Fri, 7 Jan 2011 09:14:19 +0000 (10:14 +0100)
committerJörg Dembski <gymlet@gmx.de>
Fri, 7 Jan 2011 09:14:19 +0000 (10:14 +0100)
src/epg.c

index 30e00dee536b5c1e65dae9e23c5f79138f530018..bdbcd91afe9506857d6f535f3b44ae418c18ace7 100644 (file)
--- a/src/epg.c
+++ b/src/epg.c
@@ -617,18 +617,23 @@ epg_save(void)
 
   RB_FOREACH(ch, &channel_name_tree, ch_name_link) {
     RB_FOREACH(e, &ch->ch_epg_events, e_channel_link) {
-      htsmsg_t *m = htsmsg_create_map();
-      htsmsg_add_u32(m, "id", saved);
-      htsmsg_add_u32(m, "start", e->e_start);
-      htsmsg_add_u32(m, "stop", e->e_stop);
-      htsmsg_add_str(m, "title", e->e_title);
-      htsmsg_add_str(m, "desc", e->e_desc);
-      htsmsg_add_u32(m, "ch_id", ch->ch_id);
-      htsmsg_add_u32(m, "dvb_id", e->e_dvb_id);
-
-      hts_settings_save(m, "epg/%d", saved);
-
-      saved++;
+      if((e->e_start) && (e->e_stop)) {
+        htsmsg_t *m = htsmsg_create_map();
+        htsmsg_add_u32(m, "id", saved);
+        htsmsg_add_u32(m, "start", e->e_start);
+        htsmsg_add_u32(m, "stop", e->e_stop);
+        if (e->e_title != NULL)
+          htsmsg_add_str(m, "title", e->e_title);
+
+        if (e->e_desc != NULL)
+          htsmsg_add_str(m, "desc", e->e_desc);
+        htsmsg_add_u32(m, "ch_id", ch->ch_id);
+        htsmsg_add_s32(m, "dvb_id", e->e_dvb_id);
+
+        hts_settings_save(m, "epg/%d", saved);
+
+        saved++;
+      }
     }
   }
   tvhlog(LOG_DEBUG, "epg", "Wrote epg data for %d events", saved);