summaryrefslogtreecommitdiff
path: root/src/xpath.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/xpath.c')
-rw-r--r--src/xpath.c317
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);
}