[PATCH 4/6] Protect SAX character callback from null node
Nikolay Sivov
nsivov at codeweavers.com
Sun Mar 13 05:46:45 CDT 2011
---
dlls/msxml3/domdoc.c | 23 +++++++++++++----------
1 files changed, 13 insertions(+), 10 deletions(-)
diff --git a/dlls/msxml3/domdoc.c b/dlls/msxml3/domdoc.c
index 81ffb49..1277ce1 100644
--- a/dlls/msxml3/domdoc.c
+++ b/dlls/msxml3/domdoc.c
@@ -421,19 +421,22 @@ static inline BOOL strn_isspace(xmlChar const* str, int len)
static void sax_characters(void *ctx, const xmlChar *ch, int len)
{
- xmlParserCtxtPtr pctx;
- domdoc const* This;
+ xmlParserCtxtPtr ctxt;
+ const domdoc *This;
- pctx = (xmlParserCtxtPtr) ctx;
- This = (domdoc const*) pctx->_private;
+ ctxt = (xmlParserCtxtPtr) ctx;
+ This = (const domdoc*) ctxt->_private;
- /* during domdoc_loadXML() the xmlDocPtr->_private data is not available */
- if (!This->properties->preserving &&
- !is_preserving_whitespace(pctx->node) &&
- strn_isspace(ch, len))
- return;
+ if (ctxt->node)
+ {
+ /* during domdoc_loadXML() the xmlDocPtr->_private data is not available */
+ if (!This->properties->preserving &&
+ !is_preserving_whitespace(ctxt->node) &&
+ strn_isspace(ch, len))
+ return;
+ }
- xmlSAX2Characters(ctx, ch, len);
+ xmlSAX2Characters(ctxt, ch, len);
}
static void LIBXML2_LOG_CALLBACK sax_error(void* ctx, char const* msg, ...)
--
1.5.6.5
--------------050500000300090307000007--
More information about the wine-patches
mailing list