author | Petr Sumbera <petr.sumbera@oracle.com> |
Mon, 23 Jul 2012 03:17:23 -0500 | |
branch | s11-sru |
changeset 2313 | cee15dd34514 |
permissions | -rw-r--r-- |
2313
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
1 |
This patch copied/pasted from this link: |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
2 |
http://git.gnome.org/browse/libxml2/patch/?id=77404b8b69bc122d12231807abf1a837d121b551 |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
3 |
---------------------------------------------------------------------- |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
4 |
From 77404b8b69bc122d12231807abf1a837d121b551 Mon Sep 17 00:00:00 2001 |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
5 |
From: Chris Evans <[email protected]> |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
6 |
Date: Wed, 14 Dec 2011 08:18:25 +0000 |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
7 |
Subject: Make sure the parser returns when getting a Stop order |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
8 |
|
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
9 |
patch backported from chromiun bug fixes, assuming author is Chris |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
10 |
--- |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
11 |
diff --git a/parser.c b/parser.c |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
12 |
index 21d7aa3..4e5dcb9 100644 |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
13 |
--- a/parser.c |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
14 |
+++ b/parser.c |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
15 |
@@ -4949,7 +4949,8 @@ xmlParsePI(xmlParserCtxtPtr ctxt) { |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
16 |
(ctxt->sax->processingInstruction != NULL)) |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
17 |
ctxt->sax->processingInstruction(ctxt->userData, |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
18 |
target, NULL); |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
19 |
- ctxt->instate = state; |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
20 |
+ if (ctxt->instate != XML_PARSER_EOF) |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
21 |
+ ctxt->instate = state; |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
22 |
return; |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
23 |
} |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
24 |
buf = (xmlChar *) xmlMallocAtomic(size * sizeof(xmlChar)); |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
25 |
@@ -5029,7 +5030,8 @@ xmlParsePI(xmlParserCtxtPtr ctxt) { |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
26 |
} else { |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
27 |
xmlFatalErr(ctxt, XML_ERR_PI_NOT_STARTED, NULL); |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
28 |
} |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
29 |
- ctxt->instate = state; |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
30 |
+ if (ctxt->instate != XML_PARSER_EOF) |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
31 |
+ ctxt->instate = state; |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
32 |
} |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
33 |
} |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
34 |
|
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
35 |
@@ -9589,6 +9591,8 @@ xmlParseElement(xmlParserCtxtPtr ctxt) { |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
36 |
else |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
37 |
name = xmlParseStartTag(ctxt); |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
38 |
#endif /* LIBXML_SAX1_ENABLED */ |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
39 |
+ if (ctxt->instate == XML_PARSER_EOF) |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
40 |
+ return; |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
41 |
if (name == NULL) { |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
42 |
spacePop(ctxt); |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
43 |
return; |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
44 |
@@ -10975,6 +10979,8 @@ xmlParseTryOrFinish(xmlParserCtxtPtr ctxt, int terminate) { |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
45 |
else |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
46 |
name = xmlParseStartTag(ctxt); |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
47 |
#endif /* LIBXML_SAX1_ENABLED */ |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
48 |
+ if (ctxt->instate == XML_PARSER_EOF) |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
49 |
+ goto done; |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
50 |
if (name == NULL) { |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
51 |
spacePop(ctxt); |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
52 |
ctxt->instate = XML_PARSER_EOF; |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
53 |
@@ -11161,7 +11167,9 @@ xmlParseTryOrFinish(xmlParserCtxtPtr ctxt, int terminate) { |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
54 |
else |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
55 |
xmlParseEndTag1(ctxt, 0); |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
56 |
#endif /* LIBXML_SAX1_ENABLED */ |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
57 |
- if (ctxt->nameNr == 0) { |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
58 |
+ if (ctxt->instate == XML_PARSER_EOF) { |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
59 |
+ /* Nothing */ |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
60 |
+ } else if (ctxt->nameNr == 0) { |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
61 |
ctxt->instate = XML_PARSER_EPILOG; |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
62 |
} else { |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
63 |
ctxt->instate = XML_PARSER_CONTENT; |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
64 |
-- |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
65 |
cgit v0.9.0.2 |
cee15dd34514
7100337 Problem with library/libxml
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
66 |