Skip to content

Commit

Permalink
MDEV-259 audit plugin does not see sub-statements
Browse files Browse the repository at this point in the history
  • Loading branch information
Sergei Golubchik committed Nov 8, 2012
1 parent c483bbd commit 11a82f8
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 8 deletions.
11 changes: 11 additions & 0 deletions mysql-test/suite/plugins/r/audit_null.result
Original file line number Diff line number Diff line change
Expand Up @@ -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;
7 changes: 7 additions & 0 deletions mysql-test/suite/plugins/t/audit_null.test
Original file line number Diff line number Diff line change
Expand Up @@ -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;

3 changes: 1 addition & 2 deletions sql/sp_head.cc
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
15 changes: 9 additions & 6 deletions sql/sql_audit.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand All @@ -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.
Expand Down

0 comments on commit 11a82f8

Please sign in to comment.