* Headers/Foundation/NSXMLNodeOptions.h: Add new 10.7 options.

* Source/NSXMLDocument.m: Use XML_PARSE_NONET as the default
        option for xmlReadMemory. Add XML_PARSE_NOENT when
        NSXMLNodeLoadExternalEntitiesNever is set.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@37792 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
fredkiefer 2014-04-11 21:43:14 +00:00
parent e597f98298
commit 25a2db68d6
3 changed files with 26 additions and 1 deletions

View file

@ -1,3 +1,10 @@
2014-04-11 Fred Kiefer <fredkiefer@gmx.de>
* Headers/Foundation/NSXMLNodeOptions.h: Add new 10.7 options.
* Source/NSXMLDocument.m: Use XML_PARSE_NONET as the default
option for xmlReadMemory. Add XML_PARSE_NOENT when
NSXMLNodeLoadExternalEntitiesNever is set.
2014-03-28 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSXMLParser.m: If parsing something which contains data

View file

@ -97,10 +97,19 @@ enum {
NSXMLDocumentValidate = 1 << 13,
#if OS_API_VERSION(MAC_OS_X_VERSION_10_7,GS_API_LATEST)
NSXMLNodeLoadExternalEntitiesAlways = 1 << 14,
NSXMLNodeLoadExternalEntitiesSameOriginOnly = 1 << 15,
#endif
NSXMLDocumentXInclude = 1 << 16,
NSXMLNodePrettyPrint = 1 << 17,
NSXMLDocumentIncludeContentTypeDeclaration = 1 << 18,
#if OS_API_VERSION(MAC_OS_X_VERSION_10_7,GS_API_LATEST)
NSXMLNodeLoadExternalEntitiesNever = 1 << 19,
#endif
NSXMLNodePreserveNamespaceOrder = 1 << 20,
NSXMLNodePreserveAttributeOrder = 1 << 21,

View file

@ -128,6 +128,15 @@ GS_PRIVATE_INTERNAL(NSXMLDocument)
xmlOptions |= XML_PARSE_NOBLANKS;
//xmlKeepBlanksDefault(0);
}
if (mask & NSXMLNodeLoadExternalEntitiesNever)
{
xmlOptions |= XML_PARSE_NOENT;
}
if (!(mask & NSXMLNodeLoadExternalEntitiesAlways))
{
xmlOptions |= XML_PARSE_NONET;
}
doc = xmlReadMemory([data bytes], [data length],
url, encoding, xmlOptions);
if (doc == NULL)
@ -425,7 +434,7 @@ GS_PRIVATE_INTERNAL(NSXMLDocument)
#ifdef HAVE_LIBXSLT
xmlChar **params = NULL;
xmlDocPtr stylesheetDoc = xmlReadMemory([xslt bytes], [xslt length],
NULL, NULL, XML_PARSE_NOERROR);
NULL, NULL, XML_PARSE_NOERROR | XML_PARSE_NONET);
xsltStylesheetPtr stylesheet = xsltParseStylesheetDoc(stylesheetDoc);
xmlDocPtr resultDoc = NULL;