diff options
Diffstat (limited to 'src/xpath.c')
-rw-r--r-- | src/xpath.c | 317 |
1 files changed, 90 insertions, 227 deletions
diff --git a/src/xpath.c b/src/xpath.c index 43cdf33a..8c74d6af 100644 --- a/src/xpath.c +++ b/src/xpath.c @@ -1,13 +1,20 @@ -/** +/* * XML Security Library (http://www.aleksey.com/xmlsec). * - * XPath transform * * This is free software; see Copyright file in the source * distribution for preciese wording. * * Copyright (C) 2002-2016 Aleksey Sanin <aleksey@aleksey.com>. All Rights Reserved. */ +/** + * SECTION:xpath + * @Short_description: XPath transform implementation. + * @Stability: Private + * + * + */ + #include "globals.h" #include <stdlib.h> @@ -30,7 +37,7 @@ * * xmlSecXPathHereFunction: * @ctxt: the ponter to XPath context. - * @nargs: the arguments nubmer. + * @nargs: the arguments number. * * The implementation of XPath "here()" function. * See xmlXPtrHereFunction() in xpointer.c. the only change is that @@ -86,12 +93,7 @@ xmlSecXPathDataCreate(xmlSecXPathDataType type) { data = (xmlSecXPathDataPtr) xmlMalloc(sizeof(xmlSecXPathData)); if(data == NULL) { - xmlSecError(XMLSEC_ERRORS_HERE, - NULL, - NULL, - XMLSEC_ERRORS_R_MALLOC_FAILED, - "sizeof(xmlSecXPathData)=%d", - (int)sizeof(xmlSecXPathData)); + xmlSecMallocError(sizeof(xmlSecXPathData), NULL); return(NULL); } memset(data, 0, sizeof(xmlSecXPathData)); @@ -105,11 +107,7 @@ xmlSecXPathDataCreate(xmlSecXPathDataType type) { case xmlSecXPathDataTypeXPath2: data->ctx = xmlXPathNewContext(NULL); /* we'll set doc in the context later */ if(data->ctx == NULL) { - xmlSecError(XMLSEC_ERRORS_HERE, - NULL, - "xmlXPathNewContext", - XMLSEC_ERRORS_R_XML_FAILED, - XMLSEC_ERRORS_NO_MESSAGE); + xmlSecXmlError("xmlXPathNewContext", NULL); xmlSecXPathDataDestroy(data); return(NULL); } @@ -117,11 +115,7 @@ xmlSecXPathDataCreate(xmlSecXPathDataType type) { case xmlSecXPathDataTypeXPointer: data->ctx = xmlXPtrNewContext(NULL, NULL, NULL); /* we'll set doc in the context later */ if(data->ctx == NULL) { - xmlSecError(XMLSEC_ERRORS_HERE, - NULL, - "xmlXPtrNewContext", - XMLSEC_ERRORS_R_XML_FAILED, - XMLSEC_ERRORS_NO_MESSAGE); + xmlSecXmlError("xmlXPtrNewContext", NULL); xmlSecXPathDataDestroy(data); return(NULL); } @@ -154,11 +148,7 @@ xmlSecXPathDataSetExpr(xmlSecXPathDataPtr data, const xmlChar* expr) { data->expr = xmlStrdup(expr); if(data->expr == NULL) { - xmlSecError(XMLSEC_ERRORS_HERE, - NULL, - NULL, - XMLSEC_ERRORS_R_STRDUP_FAILED, - XMLSEC_ERRORS_NO_MESSAGE); + xmlSecStrdupError(expr, NULL); return(-1); } return(0); @@ -182,13 +172,8 @@ xmlSecXPathDataRegisterNamespaces(xmlSecXPathDataPtr data, xmlNodePtr node) { if((ns->prefix != NULL) && (xmlXPathNsLookup(data->ctx, ns->prefix) == NULL)){ ret = xmlXPathRegisterNs(data->ctx, ns->prefix, ns->href); if(ret != 0) { - xmlSecError(XMLSEC_ERRORS_HERE, - NULL, - "xmlXPathRegisterNs", - XMLSEC_ERRORS_R_XML_FAILED, - "href=%s;prefix=%s", - xmlSecErrorsSafeString(ns->href), - xmlSecErrorsSafeString(ns->prefix)); + xmlSecXmlError2("xmlXPathRegisterNs", NULL, + "prefix=%s", xmlSecErrorsSafeString(ns->prefix)); return(-1); } } @@ -209,22 +194,14 @@ xmlSecXPathDataNodeRead(xmlSecXPathDataPtr data, xmlNodePtr node) { ret = xmlSecXPathDataRegisterNamespaces (data, node); if(ret < 0) { - xmlSecError(XMLSEC_ERRORS_HERE, - NULL, - "xmlSecXPathDataRegisterNamespaces", - XMLSEC_ERRORS_R_XMLSEC_FAILED, - XMLSEC_ERRORS_NO_MESSAGE); + xmlSecInternalError("xmlSecXPathDataRegisterNamespaces", NULL); return(-1); } /* read node content and set expr */ data->expr = xmlNodeGetContent(node); if(data->expr == NULL) { - xmlSecError(XMLSEC_ERRORS_HERE, - NULL, - xmlSecErrorsSafeString(xmlSecNodeGetName(node)), - XMLSEC_ERRORS_R_INVALID_NODE_CONTENT, - XMLSEC_ERRORS_NO_MESSAGE); + xmlSecInvalidNodeContentError(node, NULL, "empty"); return(-1); } @@ -258,29 +235,19 @@ xmlSecXPathDataExecute(xmlSecXPathDataPtr data, xmlDocPtr doc, xmlNodePtr hereNo case xmlSecXPathDataTypeXPath2: xpathObj = xmlXPathEvalExpression(data->expr, data->ctx); if(xpathObj == NULL) { - xmlSecError(XMLSEC_ERRORS_HERE, - NULL, - "xmlXPathEvalExpression", - XMLSEC_ERRORS_R_XML_FAILED, - "expr=%s", - xmlSecErrorsSafeString(data->expr)); + xmlSecXmlError2("xmlXPathEvalExpression", NULL, + "expr=%s", xmlSecErrorsSafeString(data->expr)); return(NULL); } break; case xmlSecXPathDataTypeXPointer: xpathObj = xmlXPtrEval(data->expr, data->ctx); if(xpathObj == NULL) { - xmlSecError(XMLSEC_ERRORS_HERE, - NULL, - "xmlXPtrEval", - XMLSEC_ERRORS_R_XML_FAILED, - "expr=%s", - xmlSecErrorsSafeString(data->expr)); + xmlSecXmlError2("xmlXPtrEval", NULL, + "expr=%s", xmlSecErrorsSafeString(data->expr)); return(NULL); } break; - default: - return(NULL); } /* sometime LibXML2 returns an empty nodeset or just NULL, we want @@ -290,23 +257,15 @@ xmlSecXPathDataExecute(xmlSecXPathDataPtr data, xmlDocPtr doc, xmlNodePtr hereNo xpathObj->nodesetval = xmlXPathNodeSetCreate(NULL); if(xpathObj->nodesetval == NULL) { xmlXPathFreeObject(xpathObj); - xmlSecError(XMLSEC_ERRORS_HERE, - NULL, - "xmlXPathNodeSetCreate", - XMLSEC_ERRORS_R_XML_FAILED, - "expr=%s", - xmlSecErrorsSafeString(data->expr)); + xmlSecXmlError2("xmlXPathNodeSetCreate", NULL, + "expr=%s", xmlSecErrorsSafeString(data->expr)); return(NULL); } } nodes = xmlSecNodeSetCreate(doc, xpathObj->nodesetval, data->nodeSetType); if(nodes == NULL) { - xmlSecError(XMLSEC_ERRORS_HERE, - NULL, - "xmlSecNodeSetCreate", - XMLSEC_ERRORS_R_XMLSEC_FAILED, - "type=%d", data->nodeSetType); + xmlSecInternalError2("xmlSecNodeSetCreate", NULL, "type=%d", data->nodeSetType); xmlXPathFreeObject(xpathObj); return(NULL); } @@ -359,11 +318,7 @@ xmlSecXPathDataListExecute(xmlSecPtrListPtr dataList, xmlDocPtr doc, for(pos = 0; pos < xmlSecPtrListGetSize(dataList); ++pos) { data = (xmlSecXPathDataPtr)xmlSecPtrListGetItem(dataList, pos); if(data == NULL) { - xmlSecError(XMLSEC_ERRORS_HERE, - NULL, - "xmlSecPtrListGetItem", - XMLSEC_ERRORS_R_XMLSEC_FAILED, - "pos=%d", pos); + xmlSecInternalError2("xmlSecPtrListGetItem", NULL, "pos=%d", pos); if((res != NULL) && (res != nodes)) { xmlSecNodeSetDestroy(res); } @@ -372,11 +327,7 @@ xmlSecXPathDataListExecute(xmlSecPtrListPtr dataList, xmlDocPtr doc, tmp = xmlSecXPathDataExecute(data, doc, hereNode); if(tmp == NULL) { - xmlSecError(XMLSEC_ERRORS_HERE, - NULL, - "xmlSecXPathDataExecute", - XMLSEC_ERRORS_R_XMLSEC_FAILED, - XMLSEC_ERRORS_NO_MESSAGE); + xmlSecInternalError("xmlSecXPathDataExecute", NULL); if((res != NULL) && (res != nodes)) { xmlSecNodeSetDestroy(res); } @@ -385,11 +336,8 @@ xmlSecXPathDataListExecute(xmlSecPtrListPtr dataList, xmlDocPtr doc, tmp2 = xmlSecNodeSetAdd(res, tmp, data->nodeSetOp); if(tmp2 == NULL) { - xmlSecError(XMLSEC_ERRORS_HERE, - NULL, - "xmlSecNodeSetAdd", - XMLSEC_ERRORS_R_XMLSEC_FAILED, - "xmlSecNodeSetIntersection"); + xmlSecInternalError2("xmlSecNodeSetAdd", NULL, + "nodeSetOp=%d", (int)data->nodeSetOp); if((res != NULL) && (res != nodes)) { xmlSecNodeSetDestroy(res); } @@ -438,11 +386,8 @@ xmlSecTransformXPathInitialize(xmlSecTransformPtr transform) { ret = xmlSecPtrListInitialize(dataList, xmlSecXPathDataListId); if(ret < 0) { - xmlSecError(XMLSEC_ERRORS_HERE, - xmlSecErrorsSafeString(xmlSecTransformGetName(transform)), - "xmlSecPtrListInitialize", - XMLSEC_ERRORS_R_XMLSEC_FAILED, - XMLSEC_ERRORS_NO_MESSAGE); + xmlSecInternalError("xmlSecPtrListInitialize", + xmlSecTransformGetName(transform)); return(-1); } return(0); @@ -482,11 +427,8 @@ xmlSecTransformXPathExecute(xmlSecTransformPtr transform, int last, transform->outNodes = xmlSecXPathDataListExecute(dataList, doc, transform->hereNode, transform->inNodes); if(transform->outNodes == NULL) { - xmlSecError(XMLSEC_ERRORS_HERE, - xmlSecErrorsSafeString(xmlSecTransformGetName(transform)), - "xmlSecXPathDataExecute", - XMLSEC_ERRORS_R_XMLSEC_FAILED, - XMLSEC_ERRORS_NO_MESSAGE); + xmlSecInternalError("xmlSecXPathDataListExecute", + xmlSecTransformGetName(transform)); return(-1); } return(0); @@ -549,6 +491,7 @@ xmlSecTransformXPathNodeRead(xmlSecTransformPtr transform, xmlNodePtr node, xmlS xmlSecXPathDataPtr data; xmlNodePtr cur; xmlChar* tmp; + int tmpSize; int ret; xmlSecAssert2(xmlSecTransformCheckId(transform, xmlSecTransformXPathId), -1); @@ -562,33 +505,23 @@ xmlSecTransformXPathNodeRead(xmlSecTransformPtr transform, xmlNodePtr node, xmlS /* there is only one required node */ cur = xmlSecGetNextElementNode(node->children); if((cur == NULL) || (!xmlSecCheckNodeName(cur, xmlSecNodeXPath, xmlSecDSigNs))) { - xmlSecError(XMLSEC_ERRORS_HERE, - xmlSecErrorsSafeString(xmlSecTransformGetName(transform)), - xmlSecErrorsSafeString(xmlSecNodeGetName(cur)), - XMLSEC_ERRORS_R_INVALID_NODE, - "expected=%s", - xmlSecErrorsSafeString(xmlSecNodeXPath)); + xmlSecInvalidNodeError(cur, xmlSecNodeXPath, + xmlSecTransformGetName(transform)); return(-1); } /* read information from the node */ data = xmlSecXPathDataCreate(xmlSecXPathDataTypeXPath); if(data == NULL) { - xmlSecError(XMLSEC_ERRORS_HERE, - xmlSecErrorsSafeString(xmlSecTransformGetName(transform)), - "xmlSecXPathDataCreate", - XMLSEC_ERRORS_R_XMLSEC_FAILED, - XMLSEC_ERRORS_NO_MESSAGE); + xmlSecInternalError("xmlSecXPathDataCreate", + xmlSecTransformGetName(transform)); return(-1); } ret = xmlSecXPathDataNodeRead(data, cur); if(ret < 0) { - xmlSecError(XMLSEC_ERRORS_HERE, - xmlSecErrorsSafeString(xmlSecTransformGetName(transform)), - "xmlSecXPathDataNodeRead", - XMLSEC_ERRORS_R_XMLSEC_FAILED, - XMLSEC_ERRORS_NO_MESSAGE); + xmlSecInternalError("xmlSecXPathDataNodeRead", + xmlSecTransformGetName(transform)); xmlSecXPathDataDestroy(data); return(-1); } @@ -596,30 +529,27 @@ xmlSecTransformXPathNodeRead(xmlSecTransformPtr transform, xmlNodePtr node, xmlS /* append it to the list */ ret = xmlSecPtrListAdd(dataList, data); if(ret < 0) { - xmlSecError(XMLSEC_ERRORS_HERE, - xmlSecErrorsSafeString(xmlSecTransformGetName(transform)), - "xmlSecPtrListAdd", - XMLSEC_ERRORS_R_XMLSEC_FAILED, - XMLSEC_ERRORS_NO_MESSAGE); + xmlSecInternalError("xmlSecPtrListAdd", + xmlSecTransformGetName(transform)); xmlSecXPathDataDestroy(data); return(-1); } /* create full XPath expression */ xmlSecAssert2(data->expr != NULL, -1); - size_t tmpSize = sizeof(xmlChar) * (xmlStrlen(data->expr) + - strlen(xpathPattern) + 1); - tmp = (xmlChar*) xmlMalloc(tmpSize); + tmpSize = xmlStrlen(data->expr) + xmlStrlen(BAD_CAST xpathPattern) + 1; + tmp = (xmlChar*) xmlMalloc(sizeof(xmlChar) * tmpSize); if(tmp == NULL) { - xmlSecError(XMLSEC_ERRORS_HERE, - xmlSecErrorsSafeString(xmlSecTransformGetName(transform)), - NULL, - XMLSEC_ERRORS_R_MALLOC_FAILED, - "size=%d", - (int)(xmlStrlen(data->expr) + strlen(xpathPattern) + 1)); + xmlSecMallocError(sizeof(xmlChar) * tmpSize, + xmlSecTransformGetName(transform)); return(-1); } - snprintf((char*)tmp, tmpSize, xpathPattern, (char*)data->expr); + ret = xmlStrPrintf(tmp, tmpSize, xpathPattern, (char*)data->expr); + if(ret < 0) { + xmlSecXmlError("xmlStrPrintf", xmlSecTransformGetName(transform)); + xmlFree(tmp); + return(-1); + } xmlFree(data->expr); data->expr = tmp; @@ -630,11 +560,7 @@ xmlSecTransformXPathNodeRead(xmlSecTransformPtr transform, xmlNodePtr node, xmlS /* check that we have nothing else */ cur = xmlSecGetNextElementNode(cur->next); if(cur != NULL) { - xmlSecError(XMLSEC_ERRORS_HERE, - xmlSecErrorsSafeString(xmlSecTransformGetName(transform)), - xmlSecErrorsSafeString(xmlSecNodeGetName(cur)), - XMLSEC_ERRORS_R_UNEXPECTED_NODE, - XMLSEC_ERRORS_NO_MESSAGE); + xmlSecUnexpectedNodeError(cur, xmlSecTransformGetName(transform)); return(-1); } return(0); @@ -709,21 +635,15 @@ xmlSecTransformXPath2NodeRead(xmlSecTransformPtr transform, xmlNodePtr node, xml /* read information from the node */ data = xmlSecXPathDataCreate(xmlSecXPathDataTypeXPath2); if(data == NULL) { - xmlSecError(XMLSEC_ERRORS_HERE, - xmlSecErrorsSafeString(xmlSecTransformGetName(transform)), - "xmlSecXPathDataCreate", - XMLSEC_ERRORS_R_XMLSEC_FAILED, - XMLSEC_ERRORS_NO_MESSAGE); + xmlSecInternalError("xmlSecXPathDataCreate", + xmlSecTransformGetName(transform)); return(-1); } ret = xmlSecXPathDataNodeRead(data, cur); if(ret < 0) { - xmlSecError(XMLSEC_ERRORS_HERE, - xmlSecErrorsSafeString(xmlSecTransformGetName(transform)), - "xmlSecXPathDataNodeRead", - XMLSEC_ERRORS_R_XMLSEC_FAILED, - XMLSEC_ERRORS_NO_MESSAGE); + xmlSecInternalError("xmlSecXPathDataNodeRead", + xmlSecTransformGetName(transform)); xmlSecXPathDataDestroy(data); return(-1); } @@ -731,11 +651,8 @@ xmlSecTransformXPath2NodeRead(xmlSecTransformPtr transform, xmlNodePtr node, xml /* append it to the list */ ret = xmlSecPtrListAdd(dataList, data); if(ret < 0) { - xmlSecError(XMLSEC_ERRORS_HERE, - xmlSecErrorsSafeString(xmlSecTransformGetName(transform)), - "xmlSecPtrListAdd", - XMLSEC_ERRORS_R_XMLSEC_FAILED, - XMLSEC_ERRORS_NO_MESSAGE); + xmlSecInternalError("xmlSecPtrListAdd", + xmlSecTransformGetName(transform)); xmlSecXPathDataDestroy(data); return(-1); } @@ -744,12 +661,9 @@ xmlSecTransformXPath2NodeRead(xmlSecTransformPtr transform, xmlNodePtr node, xml data->nodeSetType = xmlSecNodeSetTree; op = xmlGetProp(cur, xmlSecAttrFilter); if(op == NULL) { - xmlSecError(XMLSEC_ERRORS_HERE, - xmlSecErrorsSafeString(xmlSecTransformGetName(transform)), - xmlSecErrorsSafeString(xmlSecAttrFilter), - XMLSEC_ERRORS_R_INVALID_NODE_ATTRIBUTE, - "node=%s", - xmlSecErrorsSafeString(xmlSecNodeGetName(cur))); + xmlSecInvalidNodeAttributeError(cur, xmlSecAttrFilter, + xmlSecTransformGetName(transform), + "empty"); return(-1); } if(xmlStrEqual(op, xmlSecXPath2FilterIntersect)) { @@ -759,12 +673,9 @@ xmlSecTransformXPath2NodeRead(xmlSecTransformPtr transform, xmlNodePtr node, xml } else if(xmlStrEqual(op, xmlSecXPath2FilterUnion)) { data->nodeSetOp = xmlSecNodeSetUnion; } else { - xmlSecError(XMLSEC_ERRORS_HERE, - xmlSecErrorsSafeString(xmlSecTransformGetName(transform)), - xmlSecErrorsSafeString(xmlSecAttrFilter), - XMLSEC_ERRORS_R_INVALID_NODE_ATTRIBUTE, - "filter=%s", - xmlSecErrorsSafeString(op)); + xmlSecInvalidNodeAttributeError(cur, xmlSecAttrFilter, + xmlSecTransformGetName(transform), + "unknown"); xmlFree(op); return(-1); } @@ -775,11 +686,7 @@ xmlSecTransformXPath2NodeRead(xmlSecTransformPtr transform, xmlNodePtr node, xml /* check that we have nothing else */ if(cur != NULL) { - xmlSecError(XMLSEC_ERRORS_HERE, - xmlSecErrorsSafeString(xmlSecTransformGetName(transform)), - xmlSecErrorsSafeString(xmlSecNodeGetName(cur)), - XMLSEC_ERRORS_R_UNEXPECTED_NODE, - XMLSEC_ERRORS_NO_MESSAGE); + xmlSecUnexpectedNodeError(cur, xmlSecTransformGetName(transform)); return(-1); } return(0); @@ -864,32 +771,23 @@ xmlSecTransformXPointerSetExpr(xmlSecTransformPtr transform, const xmlChar* expr data = xmlSecXPathDataCreate(xmlSecXPathDataTypeXPointer); if(data == NULL) { - xmlSecError(XMLSEC_ERRORS_HERE, - xmlSecErrorsSafeString(xmlSecTransformGetName(transform)), - "xmlSecXPathDataCreate", - XMLSEC_ERRORS_R_XMLSEC_FAILED, - XMLSEC_ERRORS_NO_MESSAGE); + xmlSecInternalError("xmlSecXPathDataCreate", + xmlSecTransformGetName(transform)); return(-1); } ret = xmlSecXPathDataRegisterNamespaces(data, hereNode); if(ret < 0) { - xmlSecError(XMLSEC_ERRORS_HERE, - xmlSecErrorsSafeString(xmlSecTransformGetName(transform)), - "xmlSecXPathDataRegisterNamespaces", - XMLSEC_ERRORS_R_XMLSEC_FAILED, - XMLSEC_ERRORS_NO_MESSAGE); + xmlSecInternalError("xmlSecXPathDataRegisterNamespaces", + xmlSecTransformGetName(transform)); xmlSecXPathDataDestroy(data); return(-1); } ret = xmlSecXPathDataSetExpr(data, expr); if(ret < 0) { - xmlSecError(XMLSEC_ERRORS_HERE, - xmlSecErrorsSafeString(xmlSecTransformGetName(transform)), - "xmlSecXPathDataSetExpr", - XMLSEC_ERRORS_R_XMLSEC_FAILED, - XMLSEC_ERRORS_NO_MESSAGE); + xmlSecInternalError("xmlSecXPathDataSetExpr", + xmlSecTransformGetName(transform)); xmlSecXPathDataDestroy(data); return(-1); } @@ -897,11 +795,8 @@ xmlSecTransformXPointerSetExpr(xmlSecTransformPtr transform, const xmlChar* expr /* append it to the list */ ret = xmlSecPtrListAdd(dataList, data); if(ret < 0) { - xmlSecError(XMLSEC_ERRORS_HERE, - xmlSecErrorsSafeString(xmlSecTransformGetName(transform)), - "xmlSecPtrListAdd", - XMLSEC_ERRORS_R_XMLSEC_FAILED, - XMLSEC_ERRORS_NO_MESSAGE); + xmlSecInternalError("xmlSecPtrListAdd", + xmlSecTransformGetName(transform)); xmlSecXPathDataDestroy(data); return(-1); } @@ -931,33 +826,23 @@ xmlSecTransformXPointerNodeRead(xmlSecTransformPtr transform, xmlNodePtr node, x /* there is only one required node */ cur = xmlSecGetNextElementNode(node->children); if((cur == NULL) || (!xmlSecCheckNodeName(cur, xmlSecNodeXPointer, xmlSecXPointerNs))) { - xmlSecError(XMLSEC_ERRORS_HERE, - xmlSecErrorsSafeString(xmlSecTransformGetName(transform)), - xmlSecErrorsSafeString(xmlSecNodeGetName(cur)), - XMLSEC_ERRORS_R_INVALID_NODE, - "expected=%s", - xmlSecErrorsSafeString(xmlSecNodeXPath)); + xmlSecInvalidNodeError(cur, xmlSecNodeXPointer, + xmlSecTransformGetName(transform)); return(-1); } /* read information from the node */ data = xmlSecXPathDataCreate(xmlSecXPathDataTypeXPointer); if(data == NULL) { - xmlSecError(XMLSEC_ERRORS_HERE, - xmlSecErrorsSafeString(xmlSecTransformGetName(transform)), - "xmlSecXPathDataCreate", - XMLSEC_ERRORS_R_XMLSEC_FAILED, - XMLSEC_ERRORS_NO_MESSAGE); + xmlSecInternalError("xmlSecXPathDataCreate", + xmlSecTransformGetName(transform)); return(-1); } ret = xmlSecXPathDataNodeRead(data, cur); if(ret < 0) { - xmlSecError(XMLSEC_ERRORS_HERE, - xmlSecErrorsSafeString(xmlSecTransformGetName(transform)), - "xmlSecXPathDataNodeRead", - XMLSEC_ERRORS_R_XMLSEC_FAILED, - XMLSEC_ERRORS_NO_MESSAGE); + xmlSecInternalError("xmlSecXPathDataNodeRead", + xmlSecTransformGetName(transform)); xmlSecXPathDataDestroy(data); return(-1); } @@ -965,11 +850,8 @@ xmlSecTransformXPointerNodeRead(xmlSecTransformPtr transform, xmlNodePtr node, x /* append it to the list */ ret = xmlSecPtrListAdd(dataList, data); if(ret < 0) { - xmlSecError(XMLSEC_ERRORS_HERE, - xmlSecErrorsSafeString(xmlSecTransformGetName(transform)), - "xmlSecPtrListAdd", - XMLSEC_ERRORS_R_XMLSEC_FAILED, - XMLSEC_ERRORS_NO_MESSAGE); + xmlSecInternalError("xmlSecPtrListAdd", + xmlSecTransformGetName(transform)); xmlSecXPathDataDestroy(data); return(-1); } @@ -981,11 +863,7 @@ xmlSecTransformXPointerNodeRead(xmlSecTransformPtr transform, xmlNodePtr node, x /* check that we have nothing else */ cur = xmlSecGetNextElementNode(cur->next); if(cur != NULL) { - xmlSecError(XMLSEC_ERRORS_HERE, - xmlSecErrorsSafeString(xmlSecTransformGetName(transform)), - xmlSecErrorsSafeString(xmlSecNodeGetName(cur)), - XMLSEC_ERRORS_R_UNEXPECTED_NODE, - XMLSEC_ERRORS_NO_MESSAGE); + xmlSecUnexpectedNodeError(cur, xmlSecTransformGetName(transform)); return(-1); } return(0); @@ -1076,11 +954,7 @@ xmlSecTransformVisa3DHackSetID(xmlSecTransformPtr transform, const xmlChar* id) (*idPtr) = xmlStrdup(id); if((*idPtr) == NULL) { - xmlSecError(XMLSEC_ERRORS_HERE, - xmlSecErrorsSafeString(xmlSecTransformGetName(transform)), - "xmlStrdup", - XMLSEC_ERRORS_R_MALLOC_FAILED, - XMLSEC_ERRORS_NO_MESSAGE); + xmlSecStrdupError(id, xmlSecTransformGetName(transform)); return(-1); } @@ -1131,33 +1005,22 @@ xmlSecTransformVisa3DHackExecute(xmlSecTransformPtr transform, int last, attr = xmlGetID(doc, (*idPtr)); if((attr == NULL) || (attr->parent == NULL)) { - xmlSecError(XMLSEC_ERRORS_HERE, - xmlSecErrorsSafeString(xmlSecTransformGetName(transform)), - "xmlGetID", - XMLSEC_ERRORS_R_XML_FAILED, - "id=\"%s\"", - xmlSecErrorsSafeString((*idPtr))); + xmlSecXmlError2("xmlGetID", xmlSecTransformGetName(transform), + "id=\"%s\"", xmlSecErrorsSafeString(*idPtr)); return(-1); } nodeSet = xmlXPathNodeSetCreate(attr->parent); if(nodeSet == NULL) { - xmlSecError(XMLSEC_ERRORS_HERE, - xmlSecErrorsSafeString(xmlSecTransformGetName(transform)), - "xmlXPathNodeSetCreate", - XMLSEC_ERRORS_R_XML_FAILED, - "id=\"%s\"", - xmlSecErrorsSafeString((*idPtr))); + xmlSecXmlError2("xmlXPathNodeSetCreate", xmlSecTransformGetName(transform), + "id=\"%s\"", xmlSecErrorsSafeString(*idPtr)); return(-1); } transform->outNodes = xmlSecNodeSetCreate(doc, nodeSet, xmlSecNodeSetTreeWithoutComments); if(transform->outNodes == NULL) { - xmlSecError(XMLSEC_ERRORS_HERE, - xmlSecErrorsSafeString(xmlSecTransformGetName(transform)), - "xmlSecNodeSetCreate", - XMLSEC_ERRORS_R_XMLSEC_FAILED, - XMLSEC_ERRORS_NO_MESSAGE); + xmlSecInternalError("xmlSecNodeSetCreate", + xmlSecTransformGetName(transform)); xmlXPathFreeNodeSet(nodeSet); return(-1); } |