summaryrefslogtreecommitdiff
path: root/sql/table.cc
diff options
context:
space:
mode:
authorLuis Soares <luis.soares@oracle.com>2011-05-24 00:33:55 +0100
committerLuis Soares <luis.soares@oracle.com>2011-05-24 00:33:55 +0100
commit79f8d024b8fc73f310b255862d2797004b99871d (patch)
tree786bf19ddff57c089f3cfe1ce156bf8ee542b99e /sql/table.cc
parentef8b4f22f665b5c7f087651530072cf7342bd321 (diff)
parent1e495b270f7cbcfee346115666c9bc0ff5c16aea (diff)
downloadmariadb-git-79f8d024b8fc73f310b255862d2797004b99871d.tar.gz
BUG#12558519
Automerged bzr bundle from bug report into latest mysql-5.5.
Diffstat (limited to 'sql/table.cc')
-rw-r--r--sql/table.cc10
1 files changed, 9 insertions, 1 deletions
diff --git a/sql/table.cc b/sql/table.cc
index 351e80627eb..c62d84743bc 100644
--- a/sql/table.cc
+++ b/sql/table.cc
@@ -2189,7 +2189,15 @@ void free_blobs(register TABLE *table)
for (ptr= table->s->blob_field, end=ptr + table->s->blob_fields ;
ptr != end ;
ptr++)
- ((Field_blob*) table->field[*ptr])->free();
+ {
+ /*
+ Reduced TABLE objects which are used by row-based replication for
+ type conversion might have some fields missing. Skip freeing BLOB
+ buffers for such missing fields.
+ */
+ if (table->field[*ptr])
+ ((Field_blob*) table->field[*ptr])->free();
+ }
}