summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <karen.langford@oracle.com>2011-04-12 01:36:38 +0200
committerKaren Langford <karen.langford@oracle.com>2011-04-12 01:36:38 +0200
commit2a8293069df0c0aa620e68eb7da54cf4c12cc803 (patch)
treeef4c38c1295090f7e6f0cca209d2d82664899c60
parent432ecbb4d029ca691bbf442fa99458b73d373802 (diff)
downloadmariadb-git-mysql-5.1.57.tar.gz
Bug#11867664: Fix server crashes on update with join on partitioned table.mysql-5.1.57
-rw-r--r--sql/ha_partition.cc10
1 files changed, 9 insertions, 1 deletions
diff --git a/sql/ha_partition.cc b/sql/ha_partition.cc
index f55c48189fe..bd8e0d397c4 100644
--- a/sql/ha_partition.cc
+++ b/sql/ha_partition.cc
@@ -4317,7 +4317,8 @@ int ha_partition::index_read_idx_map(uchar *buf, uint index,
break;
}
}
- m_last_part= part;
+ if (part <= m_part_spec.end_part)
+ m_last_part= part;
}
else
{
@@ -6237,7 +6238,14 @@ void ha_partition::print_error(int error, myf errflag)
{
/* In case m_file has not been initialized, like in bug#42438 */
if (m_file)
+ {
+ if (m_last_part >= m_tot_parts)
+ {
+ DBUG_ASSERT(0);
+ m_last_part= 0;
+ }
m_file[m_last_part]->print_error(error, errflag);
+ }
else
handler::print_error(error, errflag);
}