added --nonet option fixing #112803 by adding --nonet when calling
* xmllint.c doc/xmllint.xml: added --nonet option
* doc/Makefile.am: fixing #112803 by adding --nonet when calling
xsltproc or xmllint
* doc/xmllint.xml doc/xmllint.1: also added --schema doc and
rebuilt
* HTMLparser.c: cleaned up the HTML parser context build when
using an URL
Daniel
diff --git a/HTMLparser.c b/HTMLparser.c
index f46cd66..f65084b 100644
--- a/HTMLparser.c
+++ b/HTMLparser.c
@@ -5348,6 +5348,7 @@
htmlParserCtxtPtr ctxt;
htmlParserInputPtr inputStream;
xmlParserInputBufferPtr buf;
+ char *canonicFilename;
/* htmlCharEncoding enc; */
xmlChar *content, *content_line = (xmlChar *) "charset=";
@@ -5361,27 +5362,23 @@
}
memset(ctxt, 0, sizeof(htmlParserCtxt));
htmlInitParserCtxt(ctxt);
- inputStream = (htmlParserInputPtr) xmlMalloc(sizeof(htmlParserInput));
- if (inputStream == NULL) {
- xmlGenericError(xmlGenericErrorContext, "malloc failed\n");
- xmlFree(ctxt);
+ canonicFilename = (char *) xmlCanonicPath((const xmlChar *) filename);
+ if (canonicFilename == NULL) {
+ if (xmlDefaultSAXHandler.error != NULL) {
+ xmlDefaultSAXHandler.error(NULL, "out of memory\n");
+ }
return(NULL);
}
- memset(inputStream, 0, sizeof(htmlParserInput));
-
- inputStream->filename = (char *)
- xmlCanonicPath((xmlChar *)filename);
- inputStream->line = 1;
- inputStream->col = 1;
- inputStream->buf = buf;
- inputStream->directory = NULL;
-
- inputStream->base = inputStream->buf->buffer->content;
- inputStream->cur = inputStream->buf->buffer->content;
- inputStream->free = NULL;
+
+ inputStream = xmlLoadExternalEntity(canonicFilename, NULL, ctxt);
+ xmlFree(canonicFilename);
+ if (inputStream == NULL) {
+ xmlFreeParserCtxt(ctxt);
+ return(NULL);
+ }
inputPush(ctxt, inputStream);
-
+
/* set encoding */
if (encoding) {
content = xmlMallocAtomic (xmlStrlen(content_line) + strlen(encoding) + 1);