diff options
author | Sergei Golubchik <sergii@pisem.net> | 2012-11-08 16:49:07 +0100 |
---|---|---|
committer | Sergei Golubchik <sergii@pisem.net> | 2012-11-08 16:49:07 +0100 |
commit | 53578613e96bb471446e226dbab61c2152232f56 (patch) | |
tree | d01574b6c4091199d68942a71f7e8c574504dcee | |
parent | d473199744812ee4af52edfa4b85610d834802ca (diff) | |
download | mariadb-git-53578613e96bb471446e226dbab61c2152232f56.tar.gz |
MDEV-259 audit plugin does not see sub-statements
-rw-r--r-- | mysql-test/suite/plugins/r/audit_null.result | 11 | ||||
-rw-r--r-- | mysql-test/suite/plugins/t/audit_null.test | 7 | ||||
-rw-r--r-- | sql/sp_head.cc | 3 | ||||
-rw-r--r-- | sql/sql_audit.h | 15 |
4 files changed, 28 insertions, 8 deletions
diff --git a/mysql-test/suite/plugins/r/audit_null.result b/mysql-test/suite/plugins/r/audit_null.result index 14f5708f417..4cf648510e6 100644 --- a/mysql-test/suite/plugins/r/audit_null.result +++ b/mysql-test/suite/plugins/r/audit_null.result @@ -12,7 +12,18 @@ Audit_null_called 9 Audit_null_general_error 1 Audit_null_general_log 3 Audit_null_general_result 2 +create procedure au1(x char(16)) select concat("test1", x); +call au1("-12"); +concat("test1", x) +test1-12 +show status like 'audit_null%'; +Variable_name Value +Audit_null_called 19 +Audit_null_general_error 1 +Audit_null_general_log 7 +Audit_null_general_result 5 uninstall plugin audit_null; Warnings: Warning 1620 Plugin is busy and will be uninstalled on shutdown +drop procedure au1; set global general_log=@old_global_general_log; diff --git a/mysql-test/suite/plugins/t/audit_null.test b/mysql-test/suite/plugins/t/audit_null.test index c2dec9eca54..da86e602c6b 100644 --- a/mysql-test/suite/plugins/t/audit_null.test +++ b/mysql-test/suite/plugins/t/audit_null.test @@ -12,10 +12,17 @@ install plugin audit_null soname 'adt_null'; select 1; --error 1054 select foobar; + +show status like 'audit_null%'; + +create procedure au1(x char(16)) select concat("test1", x); +call au1("-12"); + show status like 'audit_null%'; uninstall plugin audit_null; --enable_ps_protocol +drop procedure au1; set global general_log=@old_global_general_log; diff --git a/sql/sp_head.cc b/sql/sp_head.cc index f3ba0073c69..0d92a68a2d4 100644 --- a/sql/sp_head.cc +++ b/sql/sp_head.cc @@ -3113,8 +3113,7 @@ sp_instr_stmt::execute(THD *thd, uint *nextp) (the order of query cache and subst_spvars calls is irrelevant because queries with SP vars can't be cached) */ - if (unlikely((thd->variables.option_bits & OPTION_LOG_OFF)==0)) - general_log_write(thd, COM_QUERY, thd->query(), thd->query_length()); + general_log_write(thd, COM_QUERY, thd->query(), thd->query_length()); if (query_cache_send_result_to_client(thd, thd->query(), thd->query_length()) <= 0) diff --git a/sql/sql_audit.h b/sql/sql_audit.h index 02a63852955..b2ce31f1d26 100644 --- a/sql/sql_audit.h +++ b/sql/sql_audit.h @@ -37,8 +37,16 @@ extern void mysql_audit_acquire_plugins(THD *thd, uint event_class); #ifndef EMBEDDED_LIBRARY extern void mysql_audit_notify(THD *thd, uint event_class, uint event_subtype, ...); + +static inline bool mysql_audit_general_enabled() +{ + return mysql_global_audit_mask[0] & MYSQL_AUDIT_GENERAL_CLASSMASK; +} + #else -#define mysql_audit_notify(...) +static inline void mysql_audit_notify(THD *thd, uint event_class, + uint event_subtype, ...) { } +#define mysql_audit_general_enabled() 0 #endif extern void mysql_audit_release(THD *thd); @@ -53,11 +61,6 @@ static inline uint make_user_name(THD *thd, char *buf) sctx->ip ? sctx->ip : "", "]", NullS) - buf; } -static inline bool mysql_audit_general_enabled() -{ - return mysql_global_audit_mask[0] & MYSQL_AUDIT_GENERAL_CLASSMASK; -} - /** Call audit plugins of GENERAL audit class, MYSQL_AUDIT_GENERAL_LOG subtype. |