From 29f5e48468c0cf5c622005edec690de5844990ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Dembski?= Date: Fri, 7 Jan 2011 10:14:19 +0100 Subject: [PATCH] FIX: Crash due to NULL pointer access --- src/epg.c | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/src/epg.c b/src/epg.c index 30e00dee..bdbcd91a 100644 --- 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); + 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); - hts_settings_save(m, "epg/%d", saved); + 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); - saved++; + hts_settings_save(m, "epg/%d", saved); + + saved++; + } } } tvhlog(LOG_DEBUG, "epg", "Wrote epg data for %d events", saved);