Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
5.3.12, 5.5.33a, 10.0.6
-
None
-
None
Description
This query crashes the server:
SELECT ExtractValue('<a><b>abc</b><c>2</c><d>1</d></a>','substring(/a/b,..)');
|
Notice '..' in the 'position' argument to XPath substring() function,
which obviously goes above the root XML element.
If I change the position argument to something inside the XML tree,
it works fine:
mysql> SELECT ExtractValue('<a><b>abc</b><c>2</c><d>1</d></a>','substring(/a/b,/a/c)');
|
+--------------------------------------------------------------------------+
|
| ExtractValue('<a><b>abc</b><c>2</c><d>1</d></a>','substring(/a/b,/a/c)') |
|
+--------------------------------------------------------------------------+
|
| bc |
|
+--------------------------------------------------------------------------+
|
1 row in set (0.00 sec)
|
Attachments
Issue Links
Activity
Field | Original Value | New Value |
---|---|---|
Description |
This query crashes the server: {code} SELECT ExtractValue('<a><b>abc</b><c>2</c><d>1</d></a>','substring(/a/b,..)'); {code} Notice '..' in the 'position' argument to XPath's substring() function, which obviously goes outside of the root XML element. If I change the position argument to something inside the XML tree, it works fine: {code} mysql> SELECT ExtractValue('<a><b>abc</b><c>2</c><d>1</d></a>','substring(/a/b,/a/c)'); +--------------------------------------------------------------------------+ | ExtractValue('<a><b>abc</b><c>2</c><d>1</d></a>','substring(/a/b,/a/c)') | +--------------------------------------------------------------------------+ | bc | +--------------------------------------------------------------------------+ 1 row in set (0.00 sec) {code} |
This query crashes the server: {code} SELECT ExtractValue('<a><b>abc</b><c>2</c><d>1</d></a>','substring(/a/b,..)'); {code} Notice '..' in the 'position' argument to XPath substring() function, which obviously goes outside of the root XML element. If I change the position argument to something inside the XML tree, it works fine: {code} mysql> SELECT ExtractValue('<a><b>abc</b><c>2</c><d>1</d></a>','substring(/a/b,/a/c)'); +--------------------------------------------------------------------------+ | ExtractValue('<a><b>abc</b><c>2</c><d>1</d></a>','substring(/a/b,/a/c)') | +--------------------------------------------------------------------------+ | bc | +--------------------------------------------------------------------------+ 1 row in set (0.00 sec) {code} |
Description |
This query crashes the server: {code} SELECT ExtractValue('<a><b>abc</b><c>2</c><d>1</d></a>','substring(/a/b,..)'); {code} Notice '..' in the 'position' argument to XPath substring() function, which obviously goes outside of the root XML element. If I change the position argument to something inside the XML tree, it works fine: {code} mysql> SELECT ExtractValue('<a><b>abc</b><c>2</c><d>1</d></a>','substring(/a/b,/a/c)'); +--------------------------------------------------------------------------+ | ExtractValue('<a><b>abc</b><c>2</c><d>1</d></a>','substring(/a/b,/a/c)') | +--------------------------------------------------------------------------+ | bc | +--------------------------------------------------------------------------+ 1 row in set (0.00 sec) {code} |
This query crashes the server: {code} SELECT ExtractValue('<a><b>abc</b><c>2</c><d>1</d></a>','substring(/a/b,..)'); {code} Notice '..' in the 'position' argument to XPath substring() function, which obviously goes above the root XML element. If I change the position argument to something inside the XML tree, it works fine: {code} mysql> SELECT ExtractValue('<a><b>abc</b><c>2</c><d>1</d></a>','substring(/a/b,/a/c)'); +--------------------------------------------------------------------------+ | ExtractValue('<a><b>abc</b><c>2</c><d>1</d></a>','substring(/a/b,/a/c)') | +--------------------------------------------------------------------------+ | bc | +--------------------------------------------------------------------------+ 1 row in set (0.00 sec) {code} |
Fix Version/s | 10.0.9 [ 14400 ] | |
Fix Version/s | 5.5.36 [ 14600 ] |
Fix Version/s | 5.5.37 [ 15000 ] | |
Fix Version/s | 5.5.36 [ 14600 ] |
Fix Version/s | 10.0.10 [ 14500 ] | |
Fix Version/s | 10.0.9 [ 14400 ] |
Assignee | Alexander Barkov [ bar ] | Sergei Golubchik [ serg ] |
Fix Version/s | 5.5.37 [ 15000 ] |
Status | Open [ 1 ] | In Progress [ 3 ] |
Assignee | Sergei Golubchik [ serg ] | Alexander Barkov [ bar ] |
Assignee | Alexander Barkov [ bar ] | Sergei Golubchik [ serg ] |
Status | In Progress [ 3 ] | Stalled [ 10000 ] |
Assignee | Sergei Golubchik [ serg ] | Alexander Barkov [ bar ] |
Resolution | Fixed [ 1 ] | |
Status | Stalled [ 10000 ] | Closed [ 6 ] |
Workflow | defaullt [ 34734 ] | MariaDB v2 [ 43070 ] |
Workflow | MariaDB v2 [ 43070 ] | MariaDB v3 [ 62115 ] |
Workflow | MariaDB v3 [ 62115 ] | MariaDB v4 [ 147519 ] |
5.5 crash is already fixed, so this patch is considered for 10.0 only