summaryrefslogtreecommitdiff
path: root/sql/item_xmlfunc.cc
diff options
context:
space:
mode:
authorRamil Kalimullin <ramil.kalimullin@oracle.com>2012-12-14 14:01:43 +0400
committerRamil Kalimullin <ramil.kalimullin@oracle.com>2012-12-14 14:01:43 +0400
commit7e6e5e5a6928fe836391e5ca2295cc9cee183480 (patch)
tree7810e01f35f0d43ab455e731502e00c357909df3 /sql/item_xmlfunc.cc
parent77604d1b95ee784de86f9484aea38e798268415c (diff)
parentb92b7a42fd6dadd8e3491a6d87d6215a02b94eac (diff)
downloadmariadb-git-7e6e5e5a6928fe836391e5ca2295cc9cee183480.tar.gz
Auto-merge from mysql-5.1.
Diffstat (limited to 'sql/item_xmlfunc.cc')
-rw-r--r--sql/item_xmlfunc.cc6
1 files changed, 5 insertions, 1 deletions
diff --git a/sql/item_xmlfunc.cc b/sql/item_xmlfunc.cc
index 9a4c1fe3a2d..c6902878c86 100644
--- a/sql/item_xmlfunc.cc
+++ b/sql/item_xmlfunc.cc
@@ -2692,8 +2692,12 @@ int xml_enter(MY_XML_PARSER *st,const char *attr, size_t len)
node.parent= data->parent; // Set parent for the new node to old parent
data->parent= numnodes; // Remember current node as new parent
+ DBUG_ASSERT(data->level <= MAX_LEVEL);
data->pos[data->level]= numnodes;
- node.level= data->level++;
+ if (data->level < MAX_LEVEL)
+ node.level= data->level++;
+ else
+ return MY_XML_ERROR;
node.type= st->current_node_type; // TAG or ATTR
node.beg= attr;
node.end= attr + len;