summaryrefslogtreecommitdiff
path: root/storage/innobase/dict
diff options
context:
space:
mode:
authorbin.x.su@oracle.com <>2014-07-08 15:10:15 +0800
committerbin.x.su@oracle.com <>2014-07-08 15:10:15 +0800
commit95ec5bdd71b8a9c21d2fd88fe514355e0a04a4a2 (patch)
treecf31eabc660d22c5bc3184f72aa18f475a9641ef /storage/innobase/dict
parent4e62c18904cb6890dca9bd0a3a604471312577ad (diff)
downloadmariadb-git-95ec5bdd71b8a9c21d2fd88fe514355e0a04a4a2.tar.gz
BUG#18942294 - SEGV IN DICT_FIND_TABLE_BY_SPACE TRYING TO MARK SPACE CORRUPT
IN RECOVERY During redo log processing, the data dictionary is not available. We should check it in dict_find_table_by_space() to prevent SEGV error. rb#5678, approved by Jimmy.
Diffstat (limited to 'storage/innobase/dict')
-rw-r--r--storage/innobase/dict/dict0dict.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/storage/innobase/dict/dict0dict.c b/storage/innobase/dict/dict0dict.c
index 4ed0051b77a..e225966afe6 100644
--- a/storage/innobase/dict/dict0dict.c
+++ b/storage/innobase/dict/dict0dict.c
@@ -5364,6 +5364,11 @@ dict_find_table_by_space(
ut_ad(space_id > 0);
+ if (dict_sys == NULL) {
+ /* This could happen when it's in redo processing. */
+ return(NULL);
+ }
+
table = UT_LIST_GET_FIRST(dict_sys->table_LRU);
num_item = UT_LIST_GET_LEN(dict_sys->table_LRU);