more fixes. Daniel
* parser.c testapi.c xmlIO.c xmlstring.c: more fixes.
Daniel
diff --git a/parser.c b/parser.c
index 7399bfc..05c31a9 100644
--- a/parser.c
+++ b/parser.c
@@ -9978,7 +9978,11 @@
xmlFreeParserCtxt(ctxt);
return(NULL);
}
- memcpy(ctxt->sax, sax, sizeof(xmlSAXHandler));
+ memset(ctxt->sax, 0, sizeof(xmlSAXHandler));
+ if (sax->initialized == XML_SAX2_MAGIC)
+ memcpy(ctxt->sax, sax, sizeof(xmlSAXHandler));
+ else
+ memcpy(ctxt->sax, sax, sizeof(xmlSAXHandlerV1));
if (user_data != NULL)
ctxt->userData = user_data;
}
@@ -10081,7 +10085,11 @@
xmlFree(ctxt);
return(NULL);
}
- memcpy(ctxt->sax, sax, sizeof(xmlSAXHandler));
+ memset(ctxt->sax, 0, sizeof(xmlSAXHandler));
+ if (sax->initialized == XML_SAX2_MAGIC)
+ memcpy(ctxt->sax, sax, sizeof(xmlSAXHandler));
+ else
+ memcpy(ctxt->sax, sax, sizeof(xmlSAXHandlerV1));
if (user_data != NULL)
ctxt->userData = user_data;
}