mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Bug#38227 EXTRACTVALUE doesn't work with DTD declarations
Problem: XML syntax parser allowed to use quoted strings as attribute names, and tried to put them into parser state stack instead of identifiers. After that parser failed, if quoted string contained some slash characters. Fix: - Disallowing quoted strings in regular tags. - Allowing quoted string in DOCTYPE declararion, but don't push it into parse state stack (just skip it).
This commit is contained in:
@ -1029,4 +1029,28 @@ SELECT 1 FROM t1 ORDER BY(UPDATEXML(a, '1', '1'));
|
||||
1
|
||||
1
|
||||
DROP TABLE t1;
|
||||
SET @xml=
|
||||
'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title> Title - document with document declaration</title>
|
||||
</head>
|
||||
<body> Hi, Im a webpage with document a declaration </body>
|
||||
</html>';
|
||||
SELECT ExtractValue(@xml, 'html/head/title');
|
||||
ExtractValue(@xml, 'html/head/title')
|
||||
Title - document with document declaration
|
||||
SELECT ExtractValue(@xml, 'html/body');
|
||||
ExtractValue(@xml, 'html/body')
|
||||
Hi, Im a webpage with document a declaration
|
||||
SELECT ExtractValue('<xml "xxx" "yyy">CharData</xml>', '/xml');
|
||||
ExtractValue('<xml "xxx" "yyy">CharData</xml>', '/xml')
|
||||
NULL
|
||||
Warnings:
|
||||
Warning 1525 Incorrect XML value: 'parse error at line 1 pos 11: STRING unexpected ('>' wanted)'
|
||||
SELECT ExtractValue('<xml xxx "yyy">CharData</xml>', '/xml');
|
||||
ExtractValue('<xml xxx "yyy">CharData</xml>', '/xml')
|
||||
NULL
|
||||
Warnings:
|
||||
Warning 1525 Incorrect XML value: 'parse error at line 1 pos 17: STRING unexpected ('>' wanted)'
|
||||
End of 5.1 tests
|
||||
|
Reference in New Issue
Block a user