diff options
author | bin.x.su@oracle.com <> | 2014-07-08 15:10:15 +0800 |
---|---|---|
committer | bin.x.su@oracle.com <> | 2014-07-08 15:10:15 +0800 |
commit | 95ec5bdd71b8a9c21d2fd88fe514355e0a04a4a2 (patch) | |
tree | cf31eabc660d22c5bc3184f72aa18f475a9641ef /storage/innobase/dict | |
parent | 4e62c18904cb6890dca9bd0a3a604471312577ad (diff) | |
download | mariadb-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.c | 5 |
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); |