diff --git a/ChangeLog b/ChangeLog index 00c4821c..3c5716e4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Wed Jun 27 18:33:13 CEST 2001 Daniel Veillard + + * Makefile.am: added --push regression tests + * parserInternals.c: the XML parser segfaulted in --push mode + Wed Jun 27 13:09:51 CEST 2001 Daniel Veillard * configure.in: moved the symlinks detection within a CVS diff --git a/Makefile.am b/Makefile.am index 0e3faa4e..ae4a1b32 100644 --- a/Makefile.am +++ b/Makefile.am @@ -185,6 +185,26 @@ XMLtests : xmllint diff result.$$name result2.$$name ; \ rm result.$$name result2.$$name ; \ fi ; fi ; done) + @(echo > .memdump) + @echo "##" + @echo "## XML push regression tests" + @echo "##" + @echo "## You should see one warning on entity 'title.xml' for ent2" + @echo "##" + @(for i in $(srcdir)/test/* ; do \ + name=`basename $$i`; \ + if [ ! -d $$i ] ; then \ + if [ ! -f $(srcdir)/result/$$name ] ; then \ + echo New test file $$name ; \ + $(top_builddir)/xmllint --push $$i > $(srcdir)/result/$$name ; \ + else \ + echo Testing $$name ; \ + $(top_builddir)/xmllint --push $$i > result.$$name ; \ + diff $(srcdir)/result/$$name result.$$name ; \ + $(top_builddir)/xmllint --push result.$$name > result2.$$name ; \ + diff result.$$name result2.$$name ; \ + rm result.$$name result2.$$name ; \ + fi ; fi ; done) @echo "##" @echo "## XML regression tests on memory" @echo "##" diff --git a/parserInternals.c b/parserInternals.c index cf7a96b8..43b97c40 100644 --- a/parserInternals.c +++ b/parserInternals.c @@ -1575,7 +1575,8 @@ xmlSwitchEncoding(xmlParserCtxtPtr ctxt, xmlCharEncoding enc) * Specific handling of the Byte Order Mark for * UTF-8 */ - if ((ctxt->input->cur[0] == 0xEF) && + if ((ctxt->input != NULL) && + (ctxt->input->cur[0] == 0xEF) && (ctxt->input->cur[1] == 0xBB) && (ctxt->input->cur[2] == 0xBF)) { ctxt->input->cur += 3;