summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergei Golubchik <sergii@pisem.net>2012-11-08 16:49:07 +0100
committerSergei Golubchik <sergii@pisem.net>2012-11-08 16:49:07 +0100
commit53578613e96bb471446e226dbab61c2152232f56 (patch)
treed01574b6c4091199d68942a71f7e8c574504dcee
parentd473199744812ee4af52edfa4b85610d834802ca (diff)
downloadmariadb-git-53578613e96bb471446e226dbab61c2152232f56.tar.gz
MDEV-259 audit plugin does not see sub-statements
-rw-r--r--mysql-test/suite/plugins/r/audit_null.result11
-rw-r--r--mysql-test/suite/plugins/t/audit_null.test7
-rw-r--r--sql/sp_head.cc3
-rw-r--r--sql/sql_audit.h15
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.