MDEV-259 audit plugin does not see sub-statements

This commit is contained in:
Sergei Golubchik 2012-11-08 16:49:07 +01:00
parent d473199744
commit 53578613e9
4 changed files with 28 additions and 8 deletions

View file

@ -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;

View file

@ -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;

View file

@ -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)

View file

@ -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.