Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 20 additions & 31 deletions src/parser.c
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,11 @@

#include "cast_helpers.h"

/* inputPush was renamed into xmlCtxtPushInput in libxml2 2.15.0 */
#if (LIBXML_VERSION < 21500)
#define xmlCtxtPushInput inputPush
#endif /* (LIBXML_VERSION < 21500) */

/**************************************************************************
*
* Internal parser
Expand Down Expand Up @@ -189,8 +194,7 @@ xmlSecParserPushBin(xmlSecTransformPtr transform, const xmlSecByte* data,
if(final != 0) {
ret = xmlParseChunk(ctx->parserCtx, NULL, 0, 1);
if((ret != 0) || (ctx->parserCtx->myDoc == NULL)) {
xmlSecXmlParserError("xmlParseChunk", ctx->parserCtx,
xmlSecTransformGetName(transform));
xmlSecXmlParserError("xmlParseChunk", ctx->parserCtx, xmlSecTransformGetName(transform));
return(-1);
}

Expand Down Expand Up @@ -257,41 +261,35 @@ xmlSecParserPopXml(xmlSecTransformPtr transform, xmlSecNodeSetPtr* nodes,

/* prepare parser context */
if(transform->prev == NULL) {
xmlSecInvalidTransfromError2(transform,
"prev transform=\"%s\"",
xmlSecErrorsSafeString(transform->prev));
xmlSecInvalidTransfromError2(transform, "prev transform=\"%s\"", xmlSecErrorsSafeString(transform->prev));
return(-1);
}

buf = xmlSecTransformCreateInputBuffer(transform->prev, transformCtx);
if(buf == NULL) {
xmlSecInternalError("xmlSecTransformCreateInputBuffer",
xmlSecTransformGetName(transform));
xmlSecInternalError("xmlSecTransformCreateInputBuffer", xmlSecTransformGetName(transform));
return(-1);
}

ctxt = xmlNewParserCtxt();
if (ctxt == NULL) {
xmlSecXmlError("xmlNewParserCtxt",
xmlSecTransformGetName(transform));
xmlSecXmlError("xmlNewParserCtxt", xmlSecTransformGetName(transform));
xmlFreeParserInputBuffer(buf);
return(-1);
}
xmlSecParsePrepareCtxt(ctxt);

input = xmlNewIOInputStream(ctxt, buf, XML_CHAR_ENCODING_NONE);
if(input == NULL) {
xmlSecXmlParserError("xmlNewParserCtxt", ctxt,
xmlSecTransformGetName(transform));
xmlSecXmlParserError("xmlNewParserCtxt", ctxt, xmlSecTransformGetName(transform));
xmlFreeParserCtxt(ctxt);
xmlFreeParserInputBuffer(buf);
return(-1);
}

ret = inputPush(ctxt, input);
ret = xmlCtxtPushInput(ctxt, input);
if(ret < 0) {
xmlSecXmlParserError("inputPush", ctxt,
xmlSecTransformGetName(transform));
xmlSecXmlParserError("xmlCtxtPushInput", ctxt, xmlSecTransformGetName(transform));
xmlFreeInputStream(input);
if(ctxt->myDoc != NULL) {
xmlFreeDoc(ctxt->myDoc);
Expand All @@ -304,8 +302,7 @@ xmlSecParserPopXml(xmlSecTransformPtr transform, xmlSecNodeSetPtr* nodes,
/* finaly do the parsing */
ret = xmlParseDocument(ctxt);
if(ret < 0) {
xmlSecXmlParserError("xmlParseDocument", ctxt,
xmlSecTransformGetName(transform));
xmlSecXmlParserError("xmlParseDocument", ctxt, xmlSecTransformGetName(transform));
if(ctxt->myDoc != NULL) {
xmlFreeDoc(ctxt->myDoc);
ctxt->myDoc = NULL;
Expand All @@ -322,8 +319,7 @@ xmlSecParserPopXml(xmlSecTransformPtr transform, xmlSecNodeSetPtr* nodes,
/* return result to the caller */
(*nodes) = xmlSecNodeSetCreate(doc, NULL, xmlSecNodeSetTree);
if((*nodes) == NULL) {
xmlSecInternalError("xmlSecNodeSetCreate",
xmlSecTransformGetName(transform));
xmlSecInternalError("xmlSecNodeSetCreate", xmlSecTransformGetName(transform));
xmlFreeDoc(doc);
return(-1);
}
Expand Down Expand Up @@ -366,8 +362,7 @@ xmlSecParseFile(const char *filename) {
xmlInitParser();
ctxt = xmlCreateFileParserCtxt(filename);
if (ctxt == NULL) {
xmlSecXmlError2("xmlCreateFileParserCtxt", NULL,
"filename=%s", xmlSecErrorsSafeString(filename));
xmlSecXmlError2("xmlCreateFileParserCtxt", NULL, "filename=%s", xmlSecErrorsSafeString(filename));
goto done;
}
xmlSecParsePrepareCtxt(ctxt);
Expand All @@ -376,17 +371,14 @@ xmlSecParseFile(const char *filename) {
if (ctxt->directory == NULL) {
ctxt->directory = xmlParserGetDirectory(filename);
if(ctxt->directory == NULL) {
xmlSecXmlError2("xmlParserGetDirectory", NULL,
"filename=%s", xmlSecErrorsSafeString(filename));
xmlSecXmlError2("xmlParserGetDirectory", NULL, "filename=%s", xmlSecErrorsSafeString(filename));
goto done;
}
}

ret = xmlParseDocument(ctxt);
if(ret < 0) {
xmlSecXmlParserError2("xmlParseDocument", ctxt, NULL,
"filename=%s",
xmlSecErrorsSafeString(filename));
xmlSecXmlParserError2("xmlParseDocument", ctxt, NULL, "filename=%s", xmlSecErrorsSafeString(filename));
goto done;
}

Expand Down Expand Up @@ -448,8 +440,7 @@ xmlSecParseMemoryExt(const xmlSecByte *prefix, xmlSecSize prefixSize,
XMLSEC_SAFE_CAST_SIZE_TO_INT(prefixSize, prefixLen, goto done, NULL);
ret = xmlParseChunk(ctxt, (const char*)prefix, prefixLen, 0);
if(ret != 0) {
xmlSecXmlParserError2("xmlParseChunk", ctxt, NULL,
"chunkSize=%d", prefixLen);
xmlSecXmlParserError2("xmlParseChunk", ctxt, NULL, "chunkSize=%d", prefixLen);
goto done;
}
}
Expand All @@ -461,8 +452,7 @@ xmlSecParseMemoryExt(const xmlSecByte *prefix, xmlSecSize prefixSize,
XMLSEC_SAFE_CAST_SIZE_TO_INT(bufferSize, bufferLen, goto done, NULL);
ret = xmlParseChunk(ctxt, (const char*)buffer, bufferLen, 0);
if(ret != 0) {
xmlSecXmlParserError2("xmlParseChunk", ctxt, NULL,
"chunkSize=%d", bufferLen);
xmlSecXmlParserError2("xmlParseChunk", ctxt, NULL, "chunkSize=%d", bufferLen);
goto done;
}
}
Expand All @@ -474,8 +464,7 @@ xmlSecParseMemoryExt(const xmlSecByte *prefix, xmlSecSize prefixSize,
XMLSEC_SAFE_CAST_SIZE_TO_INT(postfixSize, postfixLen, goto done, NULL);
ret = xmlParseChunk(ctxt, (const char*)postfix, postfixLen, 0);
if(ret != 0) {
xmlSecXmlParserError2("xmlParseChunk", ctxt, NULL,
"chunkSize=%d", postfixLen);
xmlSecXmlParserError2("xmlParseChunk", ctxt, NULL, "chunkSize=%d", postfixLen);
goto done;
}
}
Expand Down
Loading