diff --git a/src/eitd/xmlutil.cpp b/src/eitd/xmlutil.cpp index 7dd9cdb8f..d868260da 100644 --- a/src/eitd/xmlutil.cpp +++ b/src/eitd/xmlutil.cpp @@ -271,12 +271,15 @@ void deleteOldfileEvents(char *epgdir) filter = filter->xmlChildrenNode; while (filter) { - filename = xmlGetAttribute(filter, "name"); - file = epgdir; - file +="/"; - file +=filename; - unlink(file.c_str()); - filter = filter->xmlNextNode; + const char * name = xmlGetAttribute(filter, "name"); + if(name){ + filename=name; + file = epgdir; + file +="/"; + file +=filename; + unlink(file.c_str()); + filter = filter->xmlNextNode; + } } xmlFreeDoc(filter_parser); } @@ -313,7 +316,10 @@ void *insertEventsfromFile(void * data) eventfile = xmlDocGetRootElement(index_parser)->xmlChildrenNode; while (eventfile) { - filename = xmlGetAttribute(eventfile, "name"); + const char * name = xmlGetAttribute(eventfile, "name"); + if(name) + filename=name; + epgname = epg_dir + filename; if (!(event_parser = parseXmlFile(epgname.c_str()))) { dprintf("unable to open %s for reading\n", epgname.c_str()); diff --git a/src/gui/filebrowser.cpp b/src/gui/filebrowser.cpp index 95de54101..8ae30c629 100644 --- a/src/gui/filebrowser.cpp +++ b/src/gui/filebrowser.cpp @@ -481,7 +481,9 @@ printf("CFileBrowser::readDir_sc: read done, size %d\n", (int)answer.size()); CFile file; if (xml_decode == 1) { file.Mode = S_IFDIR + 0777 ; - file.Name = xmlGetAttribute(element, "name"); + const char *eptr = xmlGetAttribute(element, "name"); + if(eptr) + file.Name = eptr; file.Url = sc_get_genre + file.Name; file.Size = 0; file.Time = 0; @@ -498,8 +500,14 @@ printf("CFileBrowser::readDir_sc: read done, size %d\n", (int)answer.size()); ptr = xmlGetAttribute(element, "mt"); if (ptr && (strcmp(ptr, "audio/mpeg")==0)) { file.Mode = S_IFREG + 0777 ; - file.Name = xmlGetAttribute(element, "name"); - file.Url = sc_tune_in_base + tunein_base + (std::string)"?id=" + xmlGetAttribute(element, "id") + (std::string)"&k=" + g_settings.shoutcast_dev_id; + const char *aptr = xmlGetAttribute(element, "name"); + if(aptr) + file.Name = aptr; + const char *idptr = xmlGetAttribute(element, "id"); + std::string id; + if(idptr) + id = idptr; + file.Url = sc_tune_in_base + tunein_base + (std::string)"?id=" + id + (std::string)"&k=" + g_settings.shoutcast_dev_id; //printf("adding %s (%s)\n", file.Name.c_str(), file.Url.c_str()); ptr = xmlGetAttribute(element, "br"); if (ptr) { diff --git a/src/gui/osdlang_setup.cpp b/src/gui/osdlang_setup.cpp index a8145dfe1..e016cdd4e 100644 --- a/src/gui/osdlang_setup.cpp +++ b/src/gui/osdlang_setup.cpp @@ -146,15 +146,21 @@ CMenuOptionStringChooser* COsdLangSetup::getTzItems() { if (!strcmp(xmlGetName(search), "zone")) { - std::string name = xmlGetAttribute(search, "name"); - std::string zone = xmlGetAttribute(search, "zone"); + const char* zptr = xmlGetAttribute(search, "zone"); + std::string zone; + if(zptr) + zone = zptr; //printf("Timezone: %s -> %s\n", name.c_str(), zone.c_str()); if (access("/usr/share/zoneinfo/" + zone, R_OK)) printf("[neutrino] timezone file '%s' not installed\n", zone.c_str()); else { - tzSelect->addOption(name); - found = true; + const char* ptr = xmlGetAttribute(search, "name"); + if(ptr){ + std::string name = ptr; + tzSelect->addOption(name); + found = true; + } } } search = search->xmlNextNode; @@ -172,7 +178,6 @@ CMenuOptionStringChooser* COsdLangSetup::getTzItems() return tzSelect; } - //shows locale setup for language selection void COsdLangSetup::showLanguageSetup(CMenuWidget *osdl_setup) { diff --git a/src/system/setting_helpers.cpp b/src/system/setting_helpers.cpp index b041ea950..86564ec02 100644 --- a/src/system/setting_helpers.cpp +++ b/src/system/setting_helpers.cpp @@ -453,9 +453,14 @@ bool CTZChangeNotifier::changeNotify(const neutrino_locale_t, void * Data) xmlNodePtr search = xmlDocGetRootElement(parser)->xmlChildrenNode; while (search) { if (!strcmp(xmlGetName(search), "zone")) { - name = xmlGetAttribute(search, "name"); + const char *nptr = xmlGetAttribute(search, "name"); + if(nptr) + name = nptr; + if(g_settings.timezone == name) { - zone = xmlGetAttribute(search, "zone"); + const char *zptr = xmlGetAttribute(search, "zone"); + if(zptr) + zone = zptr; if (!access("/usr/share/zoneinfo/" + zone, R_OK)) found = true; break; diff --git a/src/zapit/src/getservices.cpp b/src/zapit/src/getservices.cpp index 5f2734a4c..0b35dc8e5 100644 --- a/src/zapit/src/getservices.cpp +++ b/src/zapit/src/getservices.cpp @@ -443,7 +443,10 @@ void CServiceManager::ParseChannels(xmlNodePtr node, const t_transport_stream_id while ((node = xmlGetNextOccurence(node, "S")) != NULL) { *have_ptr = 1; t_service_id service_id = xmlGetNumericAttribute(node, "i", 16); - std::string name = xmlGetAttribute(node, "n"); + std::string name; + const char *nptr = xmlGetAttribute(node, "n"); + if(nptr) + name = nptr; uint8_t service_type = xmlGetNumericAttribute(node, "t", 16); uint16_t vpid = xmlGetNumericAttribute(node, "v", 16); uint16_t apid = xmlGetNumericAttribute(node, "a", 16);