diff --git a/parser.c b/parser.c
index 43b88358..a7bdc7f3 100644
--- a/parser.c
+++ b/parser.c
@@ -7158,6 +7158,7 @@ xmlParseReference(xmlParserCtxtPtr ctxt) {
ent->checked |= 1;
if (ret == XML_ERR_ENTITY_LOOP) {
xmlFatalErr(ctxt, XML_ERR_ENTITY_LOOP, NULL);
+ xmlHaltParser(ctxt);
xmlFreeNodeList(list);
return;
}
diff --git a/result/errors/rec_ext_ent.xml.ent b/result/errors/rec_ext_ent.xml.ent
index 30dd2854..d8ccec14 100644
--- a/result/errors/rec_ext_ent.xml.ent
+++ b/result/errors/rec_ext_ent.xml.ent
@@ -1,243 +1,123 @@
test/errors/rec_ext.ent:1: parser error : Detected an entity reference loop
&e; &e; &e; &e;
^
-test/errors/rec_ext.ent:2: parser error : chunk is not well balanced
-
-^
-test/errors/rec_ext.ent:1: parser error : Entity 'e' failed to parse
-&e; &e; &e; &e;
- ^
-test/errors/rec_ext.ent:2: parser error : chunk is not well balanced
-
-^
-test/errors/rec_ext.ent:1: parser error : Entity 'e' failed to parse
-&e; &e; &e; &e;
- ^
-test/errors/rec_ext.ent:2: parser error : chunk is not well balanced
-
-^
-test/errors/rec_ext.ent:1: parser error : Entity 'e' failed to parse
-&e; &e; &e; &e;
- ^
-test/errors/rec_ext.ent:2: parser error : chunk is not well balanced
-
-^
-test/errors/rec_ext.ent:1: parser error : Entity 'e' failed to parse
-&e; &e; &e; &e;
- ^
-test/errors/rec_ext.ent:2: parser error : chunk is not well balanced
-
-^
-test/errors/rec_ext.ent:1: parser error : Entity 'e' failed to parse
-&e; &e; &e; &e;
- ^
-test/errors/rec_ext.ent:2: parser error : chunk is not well balanced
-
-^
-test/errors/rec_ext.ent:1: parser error : Entity 'e' failed to parse
-&e; &e; &e; &e;
- ^
-test/errors/rec_ext.ent:2: parser error : chunk is not well balanced
-
-^
-test/errors/rec_ext.ent:1: parser error : Entity 'e' failed to parse
-&e; &e; &e; &e;
- ^
-test/errors/rec_ext.ent:2: parser error : chunk is not well balanced
-
-^
-test/errors/rec_ext.ent:1: parser error : Entity 'e' failed to parse
-&e; &e; &e; &e;
- ^
-test/errors/rec_ext.ent:2: parser error : chunk is not well balanced
-
-^
-test/errors/rec_ext.ent:1: parser error : Entity 'e' failed to parse
-&e; &e; &e; &e;
- ^
-test/errors/rec_ext.ent:2: parser error : chunk is not well balanced
-
-^
-test/errors/rec_ext.ent:1: parser error : Entity 'e' failed to parse
-&e; &e; &e; &e;
- ^
-test/errors/rec_ext.ent:2: parser error : chunk is not well balanced
-
-^
-test/errors/rec_ext.ent:1: parser error : Entity 'e' failed to parse
-&e; &e; &e; &e;
- ^
-test/errors/rec_ext.ent:2: parser error : chunk is not well balanced
-
-^
-test/errors/rec_ext.ent:1: parser error : Entity 'e' failed to parse
-&e; &e; &e; &e;
- ^
-test/errors/rec_ext.ent:2: parser error : chunk is not well balanced
-
-^
-test/errors/rec_ext.ent:1: parser error : Entity 'e' failed to parse
-&e; &e; &e; &e;
- ^
-test/errors/rec_ext.ent:2: parser error : chunk is not well balanced
-
-^
-test/errors/rec_ext.ent:1: parser error : Entity 'e' failed to parse
-&e; &e; &e; &e;
- ^
-test/errors/rec_ext.ent:2: parser error : chunk is not well balanced
-
-^
-test/errors/rec_ext.ent:1: parser error : Entity 'e' failed to parse
-&e; &e; &e; &e;
- ^
-test/errors/rec_ext.ent:2: parser error : chunk is not well balanced
-
-^
-test/errors/rec_ext.ent:1: parser error : Entity 'e' failed to parse
-&e; &e; &e; &e;
- ^
-test/errors/rec_ext.ent:2: parser error : chunk is not well balanced
-
-^
-test/errors/rec_ext.ent:1: parser error : Entity 'e' failed to parse
-&e; &e; &e; &e;
- ^
-test/errors/rec_ext.ent:2: parser error : chunk is not well balanced
-
-^
-test/errors/rec_ext.ent:1: parser error : Entity 'e' failed to parse
-&e; &e; &e; &e;
- ^
-test/errors/rec_ext.ent:2: parser error : chunk is not well balanced
-
-^
-test/errors/rec_ext.ent:1: parser error : Entity 'e' failed to parse
-&e; &e; &e; &e;
- ^
-test/errors/rec_ext.ent:2: parser error : chunk is not well balanced
-
-^
-test/errors/rec_ext.ent:1: parser error : Entity 'e' failed to parse
-&e; &e; &e; &e;
- ^
-test/errors/rec_ext.ent:2: parser error : chunk is not well balanced
-
-^
-test/errors/rec_ext.ent:1: parser error : Entity 'e' failed to parse
-&e; &e; &e; &e;
- ^
-test/errors/rec_ext.ent:2: parser error : chunk is not well balanced
-
-^
-test/errors/rec_ext.ent:1: parser error : Entity 'e' failed to parse
-&e; &e; &e; &e;
- ^
-test/errors/rec_ext.ent:2: parser error : chunk is not well balanced
-
-^
-test/errors/rec_ext.ent:1: parser error : Entity 'e' failed to parse
-&e; &e; &e; &e;
- ^
-test/errors/rec_ext.ent:2: parser error : chunk is not well balanced
-
-^
-test/errors/rec_ext.ent:1: parser error : Entity 'e' failed to parse
-&e; &e; &e; &e;
- ^
-test/errors/rec_ext.ent:2: parser error : chunk is not well balanced
-
-^
-test/errors/rec_ext.ent:1: parser error : Entity 'e' failed to parse
-&e; &e; &e; &e;
- ^
-test/errors/rec_ext.ent:2: parser error : chunk is not well balanced
-
-^
-test/errors/rec_ext.ent:1: parser error : Entity 'e' failed to parse
-&e; &e; &e; &e;
- ^
-test/errors/rec_ext.ent:2: parser error : chunk is not well balanced
-
-^
-test/errors/rec_ext.ent:1: parser error : Entity 'e' failed to parse
-&e; &e; &e; &e;
- ^
-test/errors/rec_ext.ent:2: parser error : chunk is not well balanced
-
-^
-test/errors/rec_ext.ent:1: parser error : Entity 'e' failed to parse
-&e; &e; &e; &e;
- ^
-test/errors/rec_ext.ent:2: parser error : chunk is not well balanced
-
-^
test/errors/rec_ext.ent:1: parser error : Detected an entity reference loop
&e; &e; &e; &e;
^
-test/errors/rec_ext.ent:2: parser error : chunk is not well balanced
-
-^
test/errors/rec_ext.ent:1: parser error : Detected an entity reference loop
&e; &e; &e; &e;
^
-test/errors/rec_ext.ent:2: parser error : chunk is not well balanced
-
-^
test/errors/rec_ext.ent:1: parser error : Detected an entity reference loop
&e; &e; &e; &e;
^
-test/errors/rec_ext.ent:2: parser error : chunk is not well balanced
-
-^
test/errors/rec_ext.ent:1: parser error : Detected an entity reference loop
&e; &e; &e; &e;
^
-test/errors/rec_ext.ent:2: parser error : chunk is not well balanced
-
-^
test/errors/rec_ext.ent:1: parser error : Detected an entity reference loop
&e; &e; &e; &e;
^
-test/errors/rec_ext.ent:2: parser error : chunk is not well balanced
-
-^
test/errors/rec_ext.ent:1: parser error : Detected an entity reference loop
&e; &e; &e; &e;
^
-test/errors/rec_ext.ent:2: parser error : chunk is not well balanced
-
-^
test/errors/rec_ext.ent:1: parser error : Detected an entity reference loop
&e; &e; &e; &e;
^
-test/errors/rec_ext.ent:2: parser error : chunk is not well balanced
-
-^
test/errors/rec_ext.ent:1: parser error : Detected an entity reference loop
&e; &e; &e; &e;
^
-test/errors/rec_ext.ent:2: parser error : chunk is not well balanced
-
-^
test/errors/rec_ext.ent:1: parser error : Detected an entity reference loop
&e; &e; &e; &e;
^
-test/errors/rec_ext.ent:2: parser error : chunk is not well balanced
-
-^
test/errors/rec_ext.ent:1: parser error : Detected an entity reference loop
&e; &e; &e; &e;
^
-test/errors/rec_ext.ent:2: parser error : chunk is not well balanced
-
-^
test/errors/rec_ext.ent:1: parser error : Detected an entity reference loop
&e; &e; &e; &e;
^
-test/errors/rec_ext.ent:2: parser error : chunk is not well balanced
-
-^
-./test/errors/rec_ext_ent.xml:4: parser error : Entity 'e' failed to parse
+test/errors/rec_ext.ent:1: parser error : Detected an entity reference loop
+&e; &e; &e; &e;
+ ^
+test/errors/rec_ext.ent:1: parser error : Detected an entity reference loop
+&e; &e; &e; &e;
+ ^
+test/errors/rec_ext.ent:1: parser error : Detected an entity reference loop
+&e; &e; &e; &e;
+ ^
+test/errors/rec_ext.ent:1: parser error : Detected an entity reference loop
+&e; &e; &e; &e;
+ ^
+test/errors/rec_ext.ent:1: parser error : Detected an entity reference loop
+&e; &e; &e; &e;
+ ^
+test/errors/rec_ext.ent:1: parser error : Detected an entity reference loop
+&e; &e; &e; &e;
+ ^
+test/errors/rec_ext.ent:1: parser error : Detected an entity reference loop
+&e; &e; &e; &e;
+ ^
+test/errors/rec_ext.ent:1: parser error : Detected an entity reference loop
+&e; &e; &e; &e;
+ ^
+test/errors/rec_ext.ent:1: parser error : Detected an entity reference loop
+&e; &e; &e; &e;
+ ^
+test/errors/rec_ext.ent:1: parser error : Detected an entity reference loop
+&e; &e; &e; &e;
+ ^
+test/errors/rec_ext.ent:1: parser error : Detected an entity reference loop
+&e; &e; &e; &e;
+ ^
+test/errors/rec_ext.ent:1: parser error : Detected an entity reference loop
+&e; &e; &e; &e;
+ ^
+test/errors/rec_ext.ent:1: parser error : Detected an entity reference loop
+&e; &e; &e; &e;
+ ^
+test/errors/rec_ext.ent:1: parser error : Detected an entity reference loop
+&e; &e; &e; &e;
+ ^
+test/errors/rec_ext.ent:1: parser error : Detected an entity reference loop
+&e; &e; &e; &e;
+ ^
+test/errors/rec_ext.ent:1: parser error : Detected an entity reference loop
+&e; &e; &e; &e;
+ ^
+test/errors/rec_ext.ent:1: parser error : Detected an entity reference loop
+&e; &e; &e; &e;
+ ^
+test/errors/rec_ext.ent:1: parser error : Detected an entity reference loop
+&e; &e; &e; &e;
+ ^
+test/errors/rec_ext.ent:1: parser error : Detected an entity reference loop
+&e; &e; &e; &e;
+ ^
+test/errors/rec_ext.ent:1: parser error : Detected an entity reference loop
+&e; &e; &e; &e;
+ ^
+test/errors/rec_ext.ent:1: parser error : Detected an entity reference loop
+&e; &e; &e; &e;
+ ^
+test/errors/rec_ext.ent:1: parser error : Detected an entity reference loop
+&e; &e; &e; &e;
+ ^
+test/errors/rec_ext.ent:1: parser error : Detected an entity reference loop
+&e; &e; &e; &e;
+ ^
+test/errors/rec_ext.ent:1: parser error : Detected an entity reference loop
+&e; &e; &e; &e;
+ ^
+test/errors/rec_ext.ent:1: parser error : Detected an entity reference loop
+&e; &e; &e; &e;
+ ^
+test/errors/rec_ext.ent:1: parser error : Detected an entity reference loop
+&e; &e; &e; &e;
+ ^
+test/errors/rec_ext.ent:1: parser error : Detected an entity reference loop
+&e; &e; &e; &e;
+ ^
+test/errors/rec_ext.ent:1: parser error : Detected an entity reference loop
+&e; &e; &e; &e;
+ ^
+./test/errors/rec_ext_ent.xml:4: parser error : Detected an entity reference loop
&e; &e; &e; &e;
^