mirror of https://github.com/python/cpython
Backport of r77429. Not merged/blocked as svnmerge.py is not liking me right now.
This commit is contained in:
parent
dffc1b8932
commit
2f82738988
|
@ -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():
|
||||||
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
|
||||||
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
|
||||||
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
|
||||||
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
|
||||||
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,
|
||||||
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: \
|
||||||
|
|
Loading…
Reference in New Issue