| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Give up looking up interned names if the encoding changed during parsing
NEXTL may process encoding changes by refilling the parser's input
buffer, which makes the accumulated length 'len' inaccurate.
Chromium bug: http://crbug.com/620679
Review-Url: https://codereview.chromium.org/2603933002
Cr-Commit-Position: refs/heads/master@{#442517}
Bug: 36553781
AOSP-Change-Id: Id3484fbee201d1e19b684b109009d6590354b1d9
(cherry picked from commit 008262d3e46b3d5aae2d2f981e26ca69c8bd2b51)
CVE-2016-1839
Change-Id: I1a92bad21e677164a3b117cb789c502134d0c7e5
|
|
|
|
|
|
|
|
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=780691
Bug: 36556310
AOSP-Change-Id: I9450743e167c3c73af5e4071f3fc85e81d061648
(cherry picked from commit bef9af3d89d241bcb518c20cba6da2a2fd9ba049)
CVE-2017-7375
Change-Id: Ide04e11278dd0d47f81a1668247353e3c346063a
|
|
|
|
|
|
|
|
|
|
|
|
| |
see https://bugs.chromium.org/p/chromium/issues/detail?id=705445
Bug: 36809819
AOSP-Change-Id: I4832550032669a8e921bd46068281d9daf594ae1
(cherry picked from commit 7f671748797331e20da23db2d95a6116bb1c6c55)
CVE-2017-5056
Change-Id: Ia110c329795b7b417322921c8937792296aa205e
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
no upstream report yet, add it here when we have it
issue found & patch by nmehta@
Bug: 36555370
AOSP-Change-Id: Ibf1efea554b95f514e23e939363d608021de4614
(cherry picked from commit b62884fb49fe92081e414966d9b5fe58250ae53c)
CVE-2017-7376
Change-Id: Id1753db1f464cec7f5986a38b54427f0f289d718
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Patch from ddkilzer@apple.com
See https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=598
and https://bugzilla.gnome.org/show_bug.cgi?id=780228
Bug: 37104170
AOSP-Change-Id: I0286459ff9066b664dc26f7f1ff65a1388de3d92
(cherry picked from commit eb80f32c3c9e5cb1cb6f6adc0bf35b3ec46c0963)
CVE-2017-0663
Change-Id: Idce5e950e7fc07de8b65a4a8b4ccb159cd70305f
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Namespace nodes must be copied to avoid use-after-free errors.
But they don't necessarily have a physical representation in a
document, so simply disallow them in XPointer ranges.
Found with afl-fuzz.
Fixes CVE-2016-4658.
Bug: 36554207
AOSP-Change-Id: Ie570c4a53ae8ca82ed4ca19701ab7d8ba9b0468f
(cherry picked from commit cde4b40a9c17aec816c6b2577250fff9354a6f3c)
Change-Id: Ia604606c05343ab78497c60eccd2f6adf56b3b6f
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The old code would invoke the broken xmlXPtrRangeToFunction. range-to
isn't really a function but a special kind of location step. Remove
this function and always handle range-to in the XPath code.
The old xmlXPtrRangeToFunction could also be abused to trigger a
use-after-free error with the potential for remote code execution.
Found with afl-fuzz.
Fixes CVE-2016-5131.
Bug: 36554209
AOSP-Change-Id: I2bd369290a884c432d16796884d48db6285f8502
(cherry picked from commit e875e1cd1fc92fd2daa57826024125cbd0b195c7)
Change-Id: I66c6cfb4f4f81827891b10125c991d15315ce3a7
|
|\
| |
| |
| | |
Change-Id: Ie7fc53fdf2140f593e0d275ae7b445b4f4723551
|
| |
| |
| |
| |
| | |
* configure.ac: updated
* doc/*: regenerated
|
| |
| |
| |
| |
| |
| |
| |
| | |
For https://bugzilla.gnome.org/show_bug.cgi?id=756372
Error in the code pointing to the codepoint in the stack for the
current char value instead of the pointer in the input that the SAX
callback expects
Reported and fixed by Hugh Davenport
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
For https://bugzilla.gnome.org/show_bug.cgi?id=756525
handle properly the case where we popped out of the current entity
while processing a start tag
Reported by Kostya Serebryany @ Google
This slightly modifies the output of 754946 in regression tests
|
| |
| |
| |
| |
| | |
sometimes the entity could have a lenght of 0, i.e. it wasn't
parsed or used yet, and we ended up with an incoherent input state
|
| |
| |
| |
| |
| | |
Next can switch the parser back to XML_PARSER_EOF state, we
need to consider those in loops consuming input
|
| |
| |
| |
| |
| | |
the current pointer to the input has to be between the base and end
if not stop everything we have an internal state error.
|
| |
| |
| |
| | |
Which now happens more frequently du to xmlHaltParser use
|
| |
| |
| |
| |
| |
| | |
Unify the various place where either xmlStopParser was called
(which resets the error as a side effect) and places where we
used ctxt->instate = XML_PARSER_EOF to stop further processing
|
| |
| |
| |
| |
| |
| | |
The problem is doing it in a consistent and safe fashion
It's more complex than just setting ctxt->instate = XML_PARSER_EOF
Update the public function to reuse that new internal routine
|
| |
| |
| |
| |
| |
| |
| |
| | |
For https://bugzilla.gnome.org/show_bug.cgi?id=756733
It is one case where the code in place to detect entities expansions
failed to exit when the situation was detected, leading to DoS
Problem reported by Kostya Serebryany @ Google
Patch provided by David Drysdale @ Google
|
| |
| |
| |
| |
| |
| |
| | |
For https://bugzilla.gnome.org/show_bug.cgi?id=756528
It was possible to hit a negative offset in the name indexing
used to randomize the dictionary key generation
Reported and fix provided by David Drysdale @ Google
|
| |
| |
| |
| | |
I had used it in contexts where that information ought to be preserved
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
For https://bugzilla.gnome.org/show_bug.cgi?id=756527
and was also raised by Chromium team in the past
When we hit a convwersion failure when switching encoding
it is bestter to stop parsing there, this was treated as a
fatal error but the parser was continuing to process to extract
more errors, unfortunately that makes little sense as the data
is obviously corrupt and can potentially lead to unexpected behaviour.
|
| |
| |
| |
| |
| |
| |
| | |
For https://bugzilla.gnome.org/show_bug.cgi?id=756263
One place where ctxt->instate == XML_PARSER_EOF whic was set up
by entity detection issues doesn't get noticed, and even overrided
|
| |
| |
| |
| |
| |
| |
| | |
For https://bugzilla.gnome.org/show_bug.cgi?id=757466
problem was introduced by commit f3f86ff465c92c79f834d7b981f3c7274a8bb5c8
for https://bugzilla.gnome.org/show_bug.cgi?id=711026
|
| |
| |
| |
| |
| |
| |
| | |
For https://bugzilla.gnome.org/show_bug.cgi?id=757466
DoS when parsing specially crafted XML document if XZ support
is compiled in (which wasn't the case for 2.9.2 and master since
Nov 2013, fixed in next commit !)
|
| |
| |
| |
| |
| |
| | |
For https://bugzilla.gnome.org/show_bug.cgi?id=746048
The HTML parser was too optimistic when processing comments and
didn't check for the end of the stream on the first 2 characters
|
| |
| |
| |
| |
| |
| | |
an off by one mistake in the change, led to error on correct
document where the end of the included entity was exactly
the end of the conditional section, leading to regtest failure
|
| | |
|
| |
| |
| |
| | |
Obviously it operates on the output not the input
|
| |
| |
| |
| |
| |
| |
| |
| | |
Which happen after the previous fix to
https://bugzilla.gnome.org/show_bug.cgi?id=756456
But stopping the parser and exiting we didn't pop the intermediary entities
and doing the SKIP there applies on an input which may be too small
|
| |
| |
| |
| |
| |
| | |
For https://bugzilla.gnome.org/show_bug.cgi?id=755857
a case where we check for NULL but not everywhere
|
| |
| |
| |
| |
| |
| |
| | |
For https://bugzilla.gnome.org/show_bug.cgi?id=754947
The checking function was returning incorrect args in some cases
Adds the test to teh reg suite and fix one of the existing test output
|
| |
| |
| |
| |
| |
| |
| |
| | |
For https://bugzilla.gnome.org/show_bug.cgi?id=754946
When hitting the end of the current input buffer while parsing
a name we could end up loosing the beginning of the name, which
led to various issues.
|
| |
| |
| |
| |
| |
| | |
For https://bugzilla.gnome.org/show_bug.cgi?id=737840
the fix for 724903 introduced a regression on external entities carrying
IDs, revert that patch in part and add a specific test to avoid readding it
|
| |
| |
| |
| |
| | |
Commit ba58f23 broke comparison of nodes from different documents.
Thanks to Olli Pottonen for the report.
|
| |
| |
| |
| | |
query string need to be escaped before being displayed back
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
As pointed by Christian Schoenebeck <schoenebeck@crudebyte.com>
on the list and based on some of his early patches, this preserve
content when unescaped opening angle brackets are not escaped in
textual content like:
<p> a < b </p>
<p> a <0 </p>
<p> a <=0 </p>
while still reporting the error.
|
| |
| |
| |
| |
| |
| | |
For https://bugzilla.gnome.org/show_bug.cgi?id=751679
Also added a few newline cleanups
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
For https://bugzilla.gnome.org/show_bug.cgi?id=751631
If we fail conversing the current input stream while
processing the encoding declaration of the XMLDecl
then it's safer to just abort there and not try to
report further errors.
|
| |
| |
| |
| |
| |
| |
| | |
For https://bugzilla.gnome.org/show_bug.cgi?id=751603
If the string is not properly terminated do not try to convert
to the given encoding.
|
| |
| |
| |
| |
| |
| |
| | |
Clang doesn't have perfect feature compatibility with GCC,
unfortunately.
https://bugzilla.gnome.org/show_bug.cgi?id=747870
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- A typo caused an undefined symbol reference.
- A structure field name did not match the corresponding C name due to a typo.
- Some structured fields were not properly aligned.
- The long/ulong types were wrongly mapped to 64-bit types.
- A typo in a /include directive caused a compilation error.
- Doc files copy now converts from UTF-8 and split long lines.
- Adjust /include file name mapping translation for proper prefix handling.
|
| |
| |
| |
| |
| |
| |
| | |
One of the operation on the reader could resolve entities
leading to the classic expansion issue. Make sure the
buffer used for xmlreader operation is bounded.
Introduce a new allocation type for the buffers for this effect.
|
| |
| |
| |
| |
| | |
For https://bugzilla.gnome.org/show_bug.cgi?id=747437
just use the mutex to protect access to those variables
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
For https://bugzilla.gnome.org/show_bug.cgi?id=747301
Use simple HTML5 DOCTYPE for about:legacy-compat
HTML5 uses a DOCTYPE without a PUBLIC or SYSTEM identifier. It looks
like this:
<!DOCTYPE html>
I can't use XSLT to output this, because to get a DOCTYPE I have to
provide a PUBLIC or SYSTEM identifier. Luckily, the standards folks
recognized this and provided this semantically equivalent form for the
HTML DOCTYPE:
<!DOCTYPE html SYSTEM "about:legacy-compat">
But people don't like seeing the "legacy" identifier in their output.
They'd rather see the shiny new DOCTYPE. Since we know that
about:legacy-compat is defined by the W3C to be semantically equivalent
to the sans-SYSTEM DOCTYPE, we could just special-case it in the HTML
serializer in libxml2. So if you set the SYSTEM identifier to
"about:legacy-compat", you get an HTML5 short-form DOCTYPE.
|
| |
| |
| |
| |
| |
| |
| | |
For https://bugzilla.gnome.org/show_bug.cgi?id=565219
The code was imply missing even if simple, added a few regression
tests.
|
| | |
|
| | |
|
| |
| |
| |
| | |
Make sure root nodes are sorted before other nodes.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If the context node is an attribute, the attribute itself is on the
descendant-or-self axis. The principal node type of this axis is element,
so the only node test that can return the attribute is "node()". In other
words, "@attr/descendant-or-self::node()" is equivalent to "@attr".
This matches the behavior of Saxon-CE.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
For https://bugzilla.gnome.org/show_bug.cgi?id=737851
Unfortunately this change has introduced a problem which results in
occasional hangs on Windows when running multi-threaded on a multi-core
host.
When locking the xmlRMutex the count field is increment inside the
critical section but when unlocking the count field is decremented
outside the critical section. The increment/decrement is not atomic so
this can result in the count field being updated incorrectly.
The solution is to change xmlRMutexUnlock to decrement the count field
before leaving the critical section rather than after.
|