[PATCH 1 of 4] Set parser options with xmlCtxtUseOptions
Maxim Dounin
mdounin at mdounin.ru
Wed Mar 28 01:56:57 UTC 2012
Hello!
On Wed, Mar 21, 2012 at 09:28:31PM +0000, Laurence Rowe wrote:
> # HG changeset patch
> # User Laurence Rowe <laurence at lrowe.co.uk>
> # Date 1331326885 0
> # Node ID 28a1437a8b4492530a24d51b85aca7923627c330
> # Parent aed89f1bb357e289086f9a768e2e9958c4076b7c
> Set parser options with xmlCtxtUseOptions
>
> In the current version of libxml2, loadsubset is a bit field. The
> previous value of 1 does not match any of the loadsubset bit field
> options (XML_DETECT_IDS=2, XML_COMPLETE_ATTRS=4, XML_SKIP_IDS=8) but
> from reading the source, XML_DETECT_IDS is not tested for directly in
> any relevant files, with SAX2.c using the test (ctxt->loadsubset !=
> 0). The loadsubset value is set to XML_DETECT_IDS by the
> xmlCtxtUseOptions call with XML_PARSE_DTDLOAD.
>
> diff --git a/src/http/modules/ngx_http_xslt_filter_module.c b/src/http/modules/ngx_http_xslt_filter_module.c
> --- a/src/http/modules/ngx_http_xslt_filter_module.c
> +++ b/src/http/modules/ngx_http_xslt_filter_module.c
> @@ -362,15 +362,14 @@
> "xmlCreatePushParserCtxt() failed");
> return NGX_ERROR;
> }
> + xmlCtxtUseOptions(ctxt, XML_PARSE_NOENT|XML_PARSE_DTDLOAD
> + |XML_PARSE_NOWARNING);
>
> ctxt->sax->externalSubset = ngx_http_xslt_sax_external_subset;
> ctxt->sax->setDocumentLocator = NULL;
> - ctxt->sax->warning = NULL;
> ctxt->sax->error = ngx_http_xslt_sax_error;
> ctxt->sax->fatalError = ngx_http_xslt_sax_error;
> ctxt->sax->_private = ctx;
> - ctxt->replaceEntities = 1;
> - ctxt->loadsubset = 1;
>
> ctx->ctxt = ctxt;
> ctx->request = r;
This one committed, thanks.
Maxim Dounin
More information about the nginx-devel
mailing list