path handling bug introduced by my recent machinations fixed
diff --git a/parser.c b/parser.c
index 4cfcfe5..9078c0c 100644
--- a/parser.c
+++ b/parser.c
@@ -10342,6 +10342,7 @@
{
xmlParserCtxtPtr ctxt;
xmlParserInputPtr inputStream;
+ char *canonicFilename;
char *directory = NULL;
ctxt = xmlNewParserCtxt();
@@ -10352,7 +10353,16 @@
return(NULL);
}
- inputStream = xmlLoadExternalEntity(filename, NULL, ctxt);
+ canonicFilename = xmlCanonicPath(filename);
+ if (canonicFilename == NULL) {
+ if (xmlDefaultSAXHandler.error != NULL) {
+ xmlDefaultSAXHandler.error(NULL, "out of memory\n");
+ }
+ return(NULL);
+ }
+
+ inputStream = xmlLoadExternalEntity(canonicFilename, NULL, ctxt);
+ xmlFree(canonicFilename);
if (inputStream == NULL) {
xmlFreeParserCtxt(ctxt);
return(NULL);