Commit 2f827389 authored by Brett Cannon's avatar Brett Cannon

Backport of r77429. Not merged/blocked as svnmerge.py is not liking me right now.

parent dffc1b89
...@@ -510,6 +510,24 @@ class ChardataBufferTest(unittest.TestCase): ...@@ -510,6 +510,24 @@ class ChardataBufferTest(unittest.TestCase):
parser.Parse(xml2, 1) parser.Parse(xml2, 1)
self.assertEquals(self.n, 4) self.assertEquals(self.n, 4)
class MalformedInputText(unittest.TestCase):
def test1(self):
xml = "\0\r\n"
parser = expat.ParserCreate()
try:
parser.Parse(xml, True)
self.fail()
except expat.ExpatError as e:
self.assertEquals(str(e), 'no element found: line 2, column 1')
def test2(self):
xml = "<?xml version\xc2\x85='1.0'?>\r\n"
parser = expat.ParserCreate()
try:
parser.Parse(xml, True)
self.fail()
except expat.ExpatError as e:
self.assertEquals(str(e), 'XML declaration not well-formed: line 1, column 14')
def test_main(): def test_main():
run_unittest(SetAttributeTest, run_unittest(SetAttributeTest,
...@@ -520,7 +538,8 @@ def test_main(): ...@@ -520,7 +538,8 @@ def test_main():
HandlerExceptionTest, HandlerExceptionTest,
PositionTest, PositionTest,
sf1296433Test, sf1296433Test,
ChardataBufferTest) ChardataBufferTest,
MalformedInputText)
if __name__ == "__main__": if __name__ == "__main__":
test_main() test_main()
...@@ -184,6 +184,7 @@ Ismail Donmez ...@@ -184,6 +184,7 @@ Ismail Donmez
Dima Dorfman Dima Dorfman
Cesar Douady Cesar Douady
Dean Draayer Dean Draayer
Fred L. Drake, Jr.
John DuBois John DuBois
Paul Dubois Paul Dubois
Graham Dumpleton Graham Dumpleton
...@@ -372,7 +373,6 @@ Irmen de Jong ...@@ -372,7 +373,6 @@ Irmen de Jong
Lucas de Jonge Lucas de Jonge
John Jorgensen John Jorgensen
Jens B. Jorgensen Jens B. Jorgensen
Fred L. Drake, Jr.
Andreas Jung Andreas Jung
Tattoo Mabonzo K. Tattoo Mabonzo K.
Bob Kahn Bob Kahn
...@@ -409,6 +409,7 @@ Holger Krekel ...@@ -409,6 +409,7 @@ Holger Krekel
Michael Kremer Michael Kremer
Fabian Kreutz Fabian Kreutz
Hannu Krosing Hannu Krosing
Ivan Krstić
Andrew Kuchling Andrew Kuchling
Vladimir Kushnir Vladimir Kushnir
Cameron Laird Cameron Laird
......
...@@ -122,6 +122,8 @@ Library ...@@ -122,6 +122,8 @@ Library
Extension Modules Extension Modules
----------------- -----------------
- Fix a segfault that could be triggered by expat with specially formed input.
- Issue #6561: '\d' in a regex now matches only characters with - Issue #6561: '\d' in a regex now matches only characters with
Unicode category 'Nd' (Number, Decimal Digit). Previously it also Unicode category 'Nd' (Number, Decimal Digit). Previously it also
matched characters with category 'No'. matched characters with category 'No'.
......
...@@ -1741,7 +1741,7 @@ PREFIX(updatePosition)(const ENCODING *enc, ...@@ -1741,7 +1741,7 @@ PREFIX(updatePosition)(const ENCODING *enc,
const char *end, const char *end,
POSITION *pos) POSITION *pos)
{ {
while (ptr != end) { while (ptr < end) {
switch (BYTE_TYPE(enc, ptr)) { switch (BYTE_TYPE(enc, ptr)) {
#define LEAD_CASE(n) \ #define LEAD_CASE(n) \
case BT_LEAD ## n: \ case BT_LEAD ## n: \
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment