Index: third_party/libxml/pattern.c |
diff --git a/third_party/libxml/pattern.c b/third_party/libxml/pattern.c |
index ee5196846c8dcbbee131df01d2fdc5ca664aad61..0e38c2dd21fe63e2159ca86fbbb4ed498ed9e753 100644 |
--- a/third_party/libxml/pattern.c |
+++ b/third_party/libxml/pattern.c |
@@ -2285,9 +2285,13 @@ xmlStreamPop(xmlStreamCtxtPtr stream) { |
if (stream->blockLevel == stream->level) |
stream->blockLevel = -1; |
- stream->level--; |
- if (stream->level < 0) |
- return(-1); |
+ /* |
+ * stream->level can be zero when XML_FINAL_IS_ANY_NODE is set |
+ * (see the thread at |
+ * http://mail.gnome.org/archives/xslt/2008-July/msg00027.html) |
+ */ |
+ if (stream->level) |
+ stream->level--; |
/* |
* Check evolution of existing states |
*/ |