X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Fxml_match.c;h=7dddb6f07c5be722841e88b080b4aff97be11466;hp=dd804db3b5d727f2848e000f2af146f8cee7e456;hb=a5043f3ecfd59cd1f788f982f475abdc11327997;hpb=f720562471a064dba92a465d999aa833e59d69b1 diff --git a/src/xml_match.c b/src/xml_match.c index dd804db..7dddb6f 100644 --- a/src/xml_match.c +++ b/src/xml_match.c @@ -1,5 +1,5 @@ /* This file is part of the YAZ toolkit. - * Copyright (C) 1995-2013 Index Data + * Copyright (C) Index Data * See the file LICENSE for details. */ /** @@ -16,7 +16,8 @@ int yaz_match_xsd_element(xmlNodePtr ptr, const char *elem) { - if (ptr->type == XML_ELEMENT_NODE && !xmlStrcmp(ptr->name, BAD_CAST elem)) + if (ptr && ptr->type == XML_ELEMENT_NODE && + !xmlStrcmp(ptr->name, BAD_CAST elem)) { return 1; } @@ -107,10 +108,7 @@ int yaz_match_xsd_XML_n2(xmlNodePtr ptr, const char *elem, ODR o, xmlBufferAddHead(buf, (const xmlChar *) "", -1); xmlBufferAdd(buf, (const xmlChar *) "", -1); } - *val = (char *) odr_malloc(o, buf->use + 1); - memcpy(*val, buf->content, buf->use); - (*val)[buf->use] = '\0'; - + *val = odr_strdupn(o, (const char *) buf->content, buf->use); if (len) *len = buf->use;