1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

MDEV-8329 MariaDB crashes when replicate_wild_ignore_table is set to NULL.

Rpl_filter::parse_filter_rule() made NULL-safe.
This commit is contained in:
Alexey Botchkov
2016-12-07 14:42:08 +04:00
parent d67ef7a2fb
commit 1d702ff07c
13 changed files with 45 additions and 0 deletions

View File

@ -33,5 +33,9 @@ SET @@GLOBAL.replicate_do_db="";
SELECT @@GLOBAL.replicate_do_db; SELECT @@GLOBAL.replicate_do_db;
@@GLOBAL.replicate_do_db @@GLOBAL.replicate_do_db
SET @@GLOBAL.replicate_do_db=null;
SELECT @@GLOBAL.replicate_do_db;
@@GLOBAL.replicate_do_db
# Cleanup. # Cleanup.
SET @@GLOBAL.replicate_do_db = @save_replicate_do_db; SET @@GLOBAL.replicate_do_db = @save_replicate_do_db;

View File

@ -40,5 +40,9 @@ SET @@GLOBAL.replicate_do_table="";
SELECT @@GLOBAL.replicate_do_table; SELECT @@GLOBAL.replicate_do_table;
@@GLOBAL.replicate_do_table @@GLOBAL.replicate_do_table
SET @@GLOBAL.replicate_do_table=null;
SELECT @@GLOBAL.replicate_do_table;
@@GLOBAL.replicate_do_table
# Cleanup. # Cleanup.
SET @@GLOBAL.replicate_do_table = @save_replicate_do_table; SET @@GLOBAL.replicate_do_table = @save_replicate_do_table;

View File

@ -33,5 +33,9 @@ SET @@GLOBAL.replicate_ignore_db="";
SELECT @@GLOBAL.replicate_ignore_db; SELECT @@GLOBAL.replicate_ignore_db;
@@GLOBAL.replicate_ignore_db @@GLOBAL.replicate_ignore_db
SET @@GLOBAL.replicate_ignore_db=null;
SELECT @@GLOBAL.replicate_ignore_db;
@@GLOBAL.replicate_ignore_db
# Cleanup. # Cleanup.
SET @@GLOBAL.replicate_ignore_db = @save_replicate_ignore_db; SET @@GLOBAL.replicate_ignore_db = @save_replicate_ignore_db;

View File

@ -40,5 +40,9 @@ SET @@GLOBAL.replicate_ignore_table="";
SELECT @@GLOBAL.replicate_ignore_table; SELECT @@GLOBAL.replicate_ignore_table;
@@GLOBAL.replicate_ignore_table @@GLOBAL.replicate_ignore_table
SET @@GLOBAL.replicate_ignore_table=null;
SELECT @@GLOBAL.replicate_ignore_table;
@@GLOBAL.replicate_ignore_table
# Cleanup. # Cleanup.
SET @@GLOBAL.replicate_ignore_table = @save_replicate_ignore_table; SET @@GLOBAL.replicate_ignore_table = @save_replicate_ignore_table;

View File

@ -40,5 +40,9 @@ SET @@GLOBAL.replicate_wild_do_table="";
SELECT @@GLOBAL.replicate_wild_do_table; SELECT @@GLOBAL.replicate_wild_do_table;
@@GLOBAL.replicate_wild_do_table @@GLOBAL.replicate_wild_do_table
SET @@GLOBAL.replicate_wild_do_table=null;
SELECT @@GLOBAL.replicate_wild_do_table;
@@GLOBAL.replicate_wild_do_table
# Cleanup. # Cleanup.
SET @@GLOBAL.replicate_wild_do_table = @save_replicate_wild_do_table; SET @@GLOBAL.replicate_wild_do_table = @save_replicate_wild_do_table;

View File

@ -40,5 +40,9 @@ SET @@GLOBAL.replicate_wild_ignore_table="";
SELECT @@GLOBAL.replicate_wild_ignore_table; SELECT @@GLOBAL.replicate_wild_ignore_table;
@@GLOBAL.replicate_wild_ignore_table @@GLOBAL.replicate_wild_ignore_table
SET @@GLOBAL.replicate_wild_ignore_table=null;
SELECT @@GLOBAL.replicate_wild_ignore_table;
@@GLOBAL.replicate_wild_ignore_table
# Cleanup. # Cleanup.
SET @@GLOBAL.replicate_wild_ignore_table = @save_replicate_wild_ignore_table; SET @@GLOBAL.replicate_wild_ignore_table = @save_replicate_wild_ignore_table;

View File

@ -35,5 +35,8 @@ SELECT @@GLOBAL.replicate_do_db;
SET @@GLOBAL.replicate_do_db=""; SET @@GLOBAL.replicate_do_db="";
SELECT @@GLOBAL.replicate_do_db; SELECT @@GLOBAL.replicate_do_db;
SET @@GLOBAL.replicate_do_db=null;
SELECT @@GLOBAL.replicate_do_db;
--echo # Cleanup. --echo # Cleanup.
SET @@GLOBAL.replicate_do_db = @save_replicate_do_db; SET @@GLOBAL.replicate_do_db = @save_replicate_do_db;

View File

@ -44,5 +44,8 @@ SELECT @@GLOBAL.replicate_do_table;
SET @@GLOBAL.replicate_do_table=""; SET @@GLOBAL.replicate_do_table="";
SELECT @@GLOBAL.replicate_do_table; SELECT @@GLOBAL.replicate_do_table;
SET @@GLOBAL.replicate_do_table=null;
SELECT @@GLOBAL.replicate_do_table;
--echo # Cleanup. --echo # Cleanup.
SET @@GLOBAL.replicate_do_table = @save_replicate_do_table; SET @@GLOBAL.replicate_do_table = @save_replicate_do_table;

View File

@ -35,5 +35,8 @@ SELECT @@GLOBAL.replicate_ignore_db;
SET @@GLOBAL.replicate_ignore_db=""; SET @@GLOBAL.replicate_ignore_db="";
SELECT @@GLOBAL.replicate_ignore_db; SELECT @@GLOBAL.replicate_ignore_db;
SET @@GLOBAL.replicate_ignore_db=null;
SELECT @@GLOBAL.replicate_ignore_db;
--echo # Cleanup. --echo # Cleanup.
SET @@GLOBAL.replicate_ignore_db = @save_replicate_ignore_db; SET @@GLOBAL.replicate_ignore_db = @save_replicate_ignore_db;

View File

@ -44,5 +44,8 @@ SELECT @@GLOBAL.replicate_ignore_table;
SET @@GLOBAL.replicate_ignore_table=""; SET @@GLOBAL.replicate_ignore_table="";
SELECT @@GLOBAL.replicate_ignore_table; SELECT @@GLOBAL.replicate_ignore_table;
SET @@GLOBAL.replicate_ignore_table=null;
SELECT @@GLOBAL.replicate_ignore_table;
--echo # Cleanup. --echo # Cleanup.
SET @@GLOBAL.replicate_ignore_table = @save_replicate_ignore_table; SET @@GLOBAL.replicate_ignore_table = @save_replicate_ignore_table;

View File

@ -44,5 +44,8 @@ SELECT @@GLOBAL.replicate_wild_do_table;
SET @@GLOBAL.replicate_wild_do_table=""; SET @@GLOBAL.replicate_wild_do_table="";
SELECT @@GLOBAL.replicate_wild_do_table; SELECT @@GLOBAL.replicate_wild_do_table;
SET @@GLOBAL.replicate_wild_do_table=null;
SELECT @@GLOBAL.replicate_wild_do_table;
--echo # Cleanup. --echo # Cleanup.
SET @@GLOBAL.replicate_wild_do_table = @save_replicate_wild_do_table; SET @@GLOBAL.replicate_wild_do_table = @save_replicate_wild_do_table;

View File

@ -44,5 +44,8 @@ SELECT @@GLOBAL.replicate_wild_ignore_table;
SET @@GLOBAL.replicate_wild_ignore_table=""; SET @@GLOBAL.replicate_wild_ignore_table="";
SELECT @@GLOBAL.replicate_wild_ignore_table; SELECT @@GLOBAL.replicate_wild_ignore_table;
SET @@GLOBAL.replicate_wild_ignore_table=null;
SELECT @@GLOBAL.replicate_wild_ignore_table;
--echo # Cleanup. --echo # Cleanup.
SET @@GLOBAL.replicate_wild_ignore_table = @save_replicate_wild_ignore_table; SET @@GLOBAL.replicate_wild_ignore_table = @save_replicate_wild_ignore_table;

View File

@ -279,6 +279,9 @@ Rpl_filter::parse_filter_rule(const char* spec, Add_filter add)
int status= 0; int status= 0;
char *arg, *ptr, *pstr; char *arg, *ptr, *pstr;
if (!spec)
return false;
if (! (ptr= my_strdup(spec, MYF(MY_WME)))) if (! (ptr= my_strdup(spec, MYF(MY_WME))))
return true; return true;