* Added support for:

MySQL 64-bit   8.0.28, 8.0.27, 8.0.26

MySQL 64-bit   5.7.37
MySQL 32-bit   5.7.37

MariaDB 64-bit  10.6.7, 10.6.5, 10.6.4, 10.6.3

MariaDB 64-bit  10.5.15, 10.4.24, 10.2.43
MariaDB 32-bit  10.2.43
pull/262/head v1.1.12
Patrick Wade 2022-07-26 17:34:24 +01:00
parent 1f19442b6e
commit 4c91fb3692
10 changed files with 144 additions and 28 deletions

View File

@ -22,14 +22,13 @@ include:
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* The use of sexualized language or imagery and unwelcome sexual attention or advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
professional setting
## Our Responsibilities
@ -55,8 +54,10 @@ further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at opensource@mcafee.com. All
complaints will be reviewed and investigated and will result in a response that
reported by contacting the project team via **Github Issues**
All complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.

View File

@ -2,7 +2,7 @@
## Overview
A MySQL plugin from McAfee providing audit capabilities for MySQL,
A MySQL plugin from Trellix providing audit capabilities for MySQL,
designed with an emphasis on security and audit requirements. The plugin may be used
as a standalone audit solution or configured to feed data to external monitoring tools.
@ -13,7 +13,7 @@ https://github.com/mcafee/mysql-audit/wiki
## Installation / Configuration
Official McAfee plugin binary releases can be downloaded from the Releases page on GitHub: <br/>
Official Trellix plugin binary releases can be downloaded from the Releases page on GitHub: <br/>
https://github.com/mcafee/mysql-audit/releases
Please check out our wiki on GitHub for detailed installation and configuration instructions: <br/>

View File

@ -96,5 +96,5 @@ http://dev.mysql.com/doc/refman/5.1/en/source-configuration-options.html
10. cd ../..
11. chmod +x bootstrap.sh
12. ./bootstrap.sh
13. CXX='gcc -static-libgcc' CC='gcc -static-libgcc' MYSQL_AUDIT_PLUGIN_VERSION=1.1.11 MYSQL_AUDIT_PLUGIN_REVISION=`svn info|grep ^Revision|awk -F ": " '{print $2}'` ./configure --enable-debug=no --with-mysql=mariadb-10.2.10 --with-mysql-libservices=mariadb-10.2.10/libservices/libmysqlservices.a
13. CXX='gcc -static-libgcc' CC='gcc -static-libgcc' MYSQL_AUDIT_PLUGIN_VERSION=1.1.12 MYSQL_AUDIT_PLUGIN_REVISION=`svn info|grep ^Revision|awk -F ": " '{print $2}'` ./configure --enable-debug=no --with-mysql=mariadb-10.2.10 --with-mysql-libservices=mariadb-10.2.10/libservices/libmysqlservices.a
14. gmake <======== This will create the plugin "libaudit_plugin.so"

View File

@ -16,10 +16,19 @@ AC_DEFUN([CHECK_DEBUG], [
AC_MSG_CHECKING(whether to enable debugging)
if test "x$enable_debug" = "xyes"; then
CPPFLAGS="$CPPFLAGS -g -D_DEBUG"
# Note that SAFE_MUTEX is needed in debug plugin compilation, in order that
# it aligns with MySQL at debug level. Specifically, in the MySQL source file
# "include/thr_mutex.h", we need both the my_mutex_init() function and the
# my_mutex_lock() function to use the same paradigm (i.e. both using
# "safe_mutex_*" calls ... or both using "native_mutex_*" calls ... but
# definitely NOT a mix of 'safe' and 'native').
CPPFLAGS="$CPPFLAGS -g -D_DEBUG -DSAFE_MUTEX"
AC_MSG_RESULT(yes)
else
CPPFLAGS="$CPPFLAGS -g -O2 -DDBUG_OFF"
# We need to specify -DDBUG_OFF and -DNDEBUG in order to compile the plugin
# without MySQL debug components. Later versions of MySQL ignore the DBUG_OFF
# flag, but continue to respect the NDEBUG flag.
CPPFLAGS="$CPPFLAGS -g -O2 -DDBUG_OFF -DNDEBUG"
AC_MSG_RESULT(no)
fi

View File

@ -17,7 +17,7 @@
#include <pcre.h>
#define AUDIT_LOG_PREFIX "McAfee Audit Plugin:"
#define AUDIT_LOG_PREFIX "Trellix Audit Plugin:"
#define AUDIT_PROTOCOL_VERSION "1.0"
#if !defined(MARIADB_BASE_VERSION) && MYSQL_VERSION_ID >= 50709

View File

@ -166,7 +166,7 @@ static inline bool vio_socket_connect(MYSQL_VIO vio, struct sockaddr *addr, sock
#else
/*********************************************/
/* */
/* resolve the symbols manualy to permit */
/* resolve the symbols manually to permit */
/* loading of the plugin in their absence */
/* */
/*********************************************/
@ -181,6 +181,7 @@ static inline bool vio_socket_connect(MYSQL_VIO vio, struct sockaddr *addr, sock
if (_vio_socket_connect_80020) return _vio_socket_connect_80020(vio, addr, len, false, timeout, nullptr);
return true;
}
static inline bool init_vio_socket_connect()
{
void* handle = dlopen(NULL, RTLD_LAZY);
@ -192,6 +193,27 @@ static inline bool init_vio_socket_connect()
dlclose(handle);
return _vio_socket_connect || _vio_socket_connect_80016 || _vio_socket_connect_80020;
}
extern const std::string & (*_str_session_80026)(int cmd);
extern const LEX_STRING *_command_name;
static inline const char* str_session(int cmd)
{
if (_str_session_80026) return _str_session_80026(cmd).c_str();
if (_command_name) return _command_name[cmd].str;
return "";
}
static inline bool init_str_session()
{
void* handle = dlopen(NULL, RTLD_LAZY);
if (!handle)
return false;
_command_name = (decltype(_command_name))dlsym(handle, "command_name");
_str_session_80026 = (decltype(_str_session_80026))dlsym(handle, "_ZN13Command_names11str_sessionE19enum_server_command");
dlclose(handle);
return _command_name || _str_session_80026;
}
#endif
#endif
@ -238,7 +260,7 @@ static inline const ::PFS_thread* get_current_thread()
static inline bool init()
{
#if !defined(MARIADB_BASE_VERSION) && MYSQL_VERSION_ID >= 80000
return init_vio_socket_connect();
return init_vio_socket_connect() && init_str_session();
#elif defined(HAVE_SESS_CONNECT_ATTRS) && defined(MARIADB_BASE_VERSION)
return init_PFS_thread_get_current_thread();
#else

View File

@ -1,7 +1,7 @@
Tue, Jun 27, 2017 10:48:38 AM
Mon, Apr 11, 2022 10:48:38 AM
=============================
By default, the McAfee AUDIT plugin for MySQL* is named "AUDIT" and
By default, the Trellix AUDIT plugin for MySQL* is named "AUDIT" and
that is the name you should use when installing the plugin with the SQL
"INSTALL PLUGIN" command.
@ -10,10 +10,10 @@ various configuration variables.
In order to avoid conflict with other vendors' auditing plugins whose
names may start with "audit" (such as MySQL's "audit_log" plugin) it
is possible to change the name of the McAfee plugin. The steps are
is possible to change the name of the Trellix plugin. The steps are
as follows:
1. If you're currently using the McAfee plugin, unload it.
1. If you're currently using the Trellix plugin, unload it.
2. Edit the /usr/bin/mysqld_safe shell script (using the correct location
for your system). For MySQL 5.7.9, look for the eval_log_error() function.
@ -23,9 +23,9 @@ Before the line that says:
add a line like this:
export MCAFEE_AUDIT_PLUGIN_NAME=MCAFEE # use any name you want
export MCAFEE_AUDIT_PLUGIN_NAME=TRELLIX # use any name you want
You can use any name you like, "MCAFEE" is just an example.
You can use any name you like, "TRELLIX" is just an example.
For other MySQL versions, determine where the mysqld daemon is actually
started, and set the environment variable right before that.
@ -33,16 +33,16 @@ started, and set the environment variable right before that.
3. After restarting MySQL, you will need to load the plugin using the
new name. From the MySQL client:
install plugin MCAFEE soname 'libaudit_plugin.so';
install plugin TRELLIX soname 'libaudit_plugin.so';
and/or from /etc/my.cnf:
[mysqld]
plugin-load=MCAFEE=libaudit_plugin.so
plugin-load=TRELLIX=libaudit_plugin.so
Once you've done that, you must remember that the names of ALL the
configuration variables will start with the lowercase version of the
name you've chosen. For example, "mcafee_json_log_file" instead of
name you've chosen. For example, "trellix_json_log_file" instead of
"audit_json_log_file".
If you previously had various "audit_XXX" variables set in your

View File

@ -1073,7 +1073,11 @@ ssize_t Audit_json_formatter::event_format(ThdSesData *pThdData, IWriter *writer
const char *query_text = query;
size_t query_len = qlen;
#if defined(MARIADB_BASE_VERSION) && MYSQL_VERSION_ID >= 100603
if (strcmp(col_connection->cs_name.str, "utf8") != 0)
#else
if (strcmp(col_connection->csname, "utf8") != 0)
#endif
{
// max UTF-8 bytes per char is 4.
size_t to_amount = (qlen * 4) + 1;

View File

@ -75,6 +75,14 @@ const ThdOffsets thd_offsets_arr[] =
const ThdOffsets thd_offsets_arr[] =
{
/* +++ MYSQL 64 OFFSETS GO HERE +++ */
//offsets for: /mysqlrpm/8.0.26/usr/sbin/mysqld (8.0.26)
{"8.0.26","0ae5395a4978c024e809b744a799cd3a", 8504, 8544, 4048, 5520, 496, 0, 0, 32, 64, 160, 584, 8644, 5144, 4208, 4216, 4220, 6800, 1608, 32, 7760, 7800, 7784, 11528, 140, 664, 328},
//offsets for: /mysqlrpm/8.0.27/usr/sbin/mysqld (8.0.27)
{"8.0.27","fb324bdef2d133735ba69c7223c849c9", 8512, 8552, 4048, 5528, 496, 0, 0, 32, 64, 160, 584, 8652, 5152, 4224, 4232, 4236, 6808, 1608, 32, 7768, 7808, 7792, 11536, 140, 664, 328},
//offsets for: /mysqlrpm/8.0.28/usr/sbin/mysqld (8.0.28)
{"8.0.28","83a37cda5966f156ec4ac742517db37e", 8584, 8624, 4120, 5600, 496, 0, 0, 32, 64, 160, 584, 8724, 5224, 4232, 4240, 4244, 6880, 1608, 32, 7840, 7880, 7864, 11608, 140, 664, 328},
//offsets for: /mysqlrpm/5.7.37/usr/sbin/mysqld (5.7.37)
{"5.7.37","fb0b3075cb05807123b68567607fd325", 7832, 7880, 3640, 4800, 456, 360, 0, 32, 64, 160, 544, 7996, 4368, 3648, 3656, 3660, 6080, 2072, 8, 7064, 7104, 7088, 13480, 148, 672, 0},
//offsets for: /mysqlrpm/5.7.36/usr/sbin/mysqld (5.7.36)
{"5.7.36","a510b439fd43a666e34b5e670bb5da86", 7832, 7880, 3640, 4800, 456, 360, 0, 32, 64, 160, 544, 7996, 4368, 3648, 3656, 3660, 6080, 2072, 8, 7064, 7104, 7088, 13480, 148, 672, 0},
//offsets for: /mysqlrpm/5.7.35/usr/sbin/mysqld (5.7.35)
@ -436,6 +444,32 @@ const ThdOffsets thd_offsets_arr[] =
const ThdOffsets thd_offsets_arr[] =
{
/* +++ MARIADB 64 OFFSETS GO HERE +++ */
//offsets for: /mariadb/10.6.3/bin/mysqld (10.6.3-MariaDB)
{"10.6.3-MariaDB","fa61914d3b3a334d3ba5a8d019bafb50", 15688, 15848, 7768, 9928, 88, 3512, 8, 0, 16, 24, 152, 15956, 9560, 5672, 5680, 5684, 656, 0, 0, 14944, 14968, 14952, 24528, 564, 8, 0},
//offsets for: /mariadb/10.6.4/bin/mysqld (10.6.4-MariaDB)
{"10.6.4-MariaDB","f41f007042e929ca5b00de57536b3dec", 15664, 15824, 7744, 9904, 88, 3512, 8, 0, 16, 24, 152, 15940, 9536, 5672, 5680, 5684, 656, 0, 0, 14920, 14944, 14928, 24512, 564, 8, 0},
//offsets for: /mariadb/10.6.5/bin/mysqld (10.6.5-MariaDB)
{"10.6.5-MariaDB","82682c5e05878c8c0fcdc8a0ae945483", 15664, 15824, 7744, 9904, 88, 3512, 8, 0, 16, 24, 152, 15940, 9536, 5672, 5680, 5684, 656, 0, 0, 14920, 14944, 14928, 24512, 564, 8, 0},
//offsets for: /mariadb/10.6.7/bin/mysqld (10.6.7-MariaDB)
{"10.6.7-MariaDB","50d6d050b7ce0e882e385c328c20927b", 15664, 15824, 7744, 9904, 88, 3512, 8, 0, 16, 24, 152, 15940, 9536, 5672, 5680, 5684, 656, 0, 0, 14920, 14944, 14928, 24512, 564, 8, 0},
//offsets for: /mariadbrpm/10.6.3/usr/sbin/mariadbd (10.6.3-MariaDB)
{"10.6.3-MariaDB","ebfdcf0f950b82351005a05db08de352", 15688, 15848, 7768, 9928, 88, 3512, 8, 0, 16, 24, 152, 15956, 9560, 5672, 5680, 5684, 656, 0, 0, 14944, 14968, 14952, 24528, 564, 8, 0},
//offsets for: /mariadbrpm/10.6.4/usr/sbin/mariadbd (10.6.4-MariaDB)
{"10.6.4-MariaDB","9a2b4ae4f0b6d6dd9aaae8cd149add2e", 15664, 15824, 7744, 9904, 88, 3512, 8, 0, 16, 24, 152, 15940, 9536, 5672, 5680, 5684, 656, 0, 0, 14920, 14944, 14928, 24512, 564, 8, 0},
//offsets for: /mariadbrpm/10.6.5/usr/sbin/mariadbd (10.6.5-MariaDB)
{"10.6.5-MariaDB","90cfc8ff0ed2aef04154b503bbd5f2f2", 15664, 15824, 7744, 9904, 88, 3512, 8, 0, 16, 24, 152, 15940, 9536, 5672, 5680, 5684, 656, 0, 0, 14920, 14944, 14928, 24512, 564, 8, 0},
//offsets for: /mariadbrpm/10.6.7/usr/sbin/mariadbd (10.6.7-MariaDB)
{"10.6.7-MariaDB","9163361e728a4cfcd20d1d18928fda63", 15664, 15824, 7744, 9904, 88, 3512, 8, 0, 16, 24, 152, 15940, 9536, 5672, 5680, 5684, 656, 0, 0, 14920, 14944, 14928, 24512, 564, 8, 0},
//offsets for: /mariadb/10.4.24/bin/mysqld (10.4.24-MariaDB)
{"10.4.24-MariaDB","d0709b66f85f1d6dbd97f49eec72a30d", 14616, 14768, 7272, 9008, 88, 3536, 8, 0, 16, 24, 152, 14876, 8664, 2984, 2992, 2996, 640, 0, 0, 13992, 14016, 14000, 23408, 564, 8, 0},
//offsets for: /mariadb/10.5.15/bin/mysqld (10.5.15-MariaDB)
{"10.5.15-MariaDB","6cf2a099ba5a317561f42ae66aa9c9f2", 15216, 15376, 7704, 9472, 88, 3552, 8, 0, 16, 24, 152, 15492, 9104, 5480, 5488, 5492, 640, 0, 0, 14472, 14496, 14480, 24072, 564, 8, 0},
//offsets for: /mariadbrpm/10.4.24/usr/sbin/mariadbd (10.4.24-MariaDB)
{"10.4.24-MariaDB","6625d0e2ff924708b83edeb4f2ddd338", 14616, 14768, 7272, 9008, 88, 3536, 8, 0, 16, 24, 152, 14876, 8664, 2984, 2992, 2996, 640, 0, 0, 13992, 14016, 14000, 23408, 564, 8, 0},
//offsets for: /mariadbrpm/10.5.15/usr/sbin/mariadbd (10.5.15-MariaDB)
{"10.5.15-MariaDB","21072edb0f9245ec94cbcfca439f8713", 15216, 15376, 7704, 9472, 88, 3552, 8, 0, 16, 24, 152, 15492, 9104, 5480, 5488, 5492, 640, 0, 0, 14472, 14496, 14480, 24072, 564, 8, 0},
//offsets for: /mariadb/10.2.43/bin/mysqld (10.2.43-MariaDB)
{"10.2.43-MariaDB","3536787cd3635724bc47286f5ffc298e", 13880, 13944, 6672, 8288, 88, 3224, 8, 0, 16, 24, 152, 14044, 8048, 2984, 2992, 2996, 608, 0, 0, 13256, 13280, 13264, 21232, 548, 516, 0},
//offsets for: /mariadb/10.4.22/bin/mysqld (10.4.22-MariaDB)
{"10.4.22-MariaDB","52891aee2583ecc6e1ae386379db035e", 14616, 14768, 7272, 9008, 88, 3536, 8, 0, 16, 24, 152, 14876, 8664, 2984, 2992, 2996, 640, 0, 0, 13992, 14016, 14000, 23408, 564, 8, 0},
//offsets for: /mariadb/10.5.13/bin/mysqld (10.5.13-MariaDB)
@ -1147,6 +1181,10 @@ const ThdOffsets thd_offsets_arr[] =
const ThdOffsets thd_offsets_arr[] =
{
/* +++ MYSQL 32 OFFSETS GO HERE +++ */
//offsets for: /mysqlrpm/8.0.26/usr/sbin/mysqld (8.0.26)
{"8.0.26","39a33a3c2a3f6c076e21fabb10be7ab5", 5668, 5692, 2492, 3636, 320, 0, 0, 20, 40, 100, 368, 5772, 3420, 3652, 3656, 3660, 4324, 928, 16, 5124, 5160, 5144, 8108, 72, 596, 176},
//offsets for: /mysqlrpm/5.7.37/usr/sbin/mysqld (5.7.37)
{"5.7.37","6af07772eef15eb7e47de7749fa429ae", 5088, 5116, 2216, 3040, 296, 200, 0, 20, 40, 100, 344, 5204, 2780, 3108, 3112, 3116, 3724, 1152, 4, 4540, 4576, 4560, 9052, 80, 604, 0},
//offsets for: /mysqlrpm/5.7.36/usr/sbin/mysqld (5.7.36)
{"5.7.36","d6f5b24c443e3c0a340580fdc1eb4879", 5088, 5116, 2216, 3040, 296, 200, 0, 20, 40, 100, 344, 5204, 2780, 3108, 3112, 3116, 3724, 1152, 4, 4540, 4576, 4560, 9052, 80, 604, 0},
//offsets for: /mysqlrpm/5.7.35/usr/sbin/mysqld (5.7.35)
@ -1478,6 +1516,8 @@ const ThdOffsets thd_offsets_arr[] =
const ThdOffsets thd_offsets_arr[] =
{
/* +++ MARIADB 32 OFFSETS GO HERE +++ */
//offsets for: /mariadb/10.2.43/bin/mysqld (10.2.43-MariaDB)
{"10.2.43-MariaDB","6fc47e535a86f0b6864a461eb817e2f7", 8612, 8648, 3960, 5428, 44, 2044, 4, 0, 8, 12, 84, 8732, 5288, 2604, 2608, 2612, 376, 0, 0, 8136, 8160, 8144, 13476, 548, 516, 0},
//offsets for: /mariadb/10.2.41/bin/mysqld (10.2.41-MariaDB)
{"10.2.41-MariaDB","918d2a72191fd6d43114aceffd859edc", 8612, 8648, 3960, 5428, 44, 2044, 4, 0, 8, 12, 84, 8732, 5288, 2604, 2608, 2612, 376, 0, 0, 8136, 8160, 8144, 13476, 548, 516, 0},
//offsets for: /mariadb/10.2.40/bin/mysqld (10.2.40-MariaDB)

View File

@ -855,7 +855,12 @@ static struct st_mysql_audit audit_plugin =
#if defined(MARIADB_BASE_VERSION) || MYSQL_VERSION_ID < 80000
extern void log_slow_statement(THD *thd);
#endif
#if defined(MARIADB_BASE_VERSION) && MYSQL_VERSION_ID >= 100603
extern int mysql_execute_command(THD *thd, bool is_called_from_prepared_stmt);
#else
extern int mysql_execute_command(THD *thd);
#endif
#if defined(MARIADB_BASE_VERSION)
extern void end_connection(THD *thd);
@ -918,7 +923,12 @@ void remove_hot_functions()
trampoline_check_table_access_size=0;
trampoline_check_table_access_saved_code.size = 0;
#if defined(MARIADB_BASE_VERSION) || MYSQL_VERSION_ID < 50709
#if defined(MARIADB_BASE_VERSION) && MYSQL_VERSION_ID >= 100603
target_function = (void*)
(int (*)(THD *thd, bool is_called_from_prepared_stmt)) &mysql_execute_command;
#elif defined(MARIADB_BASE_VERSION) && MYSQL_VERSION_ID < 100603
target_function = (void*) mysql_execute_command;
#elif MYSQL_VERSION_ID < 50709
target_function = (void*) mysql_execute_command;
#else
target_function = (void*)
@ -1236,6 +1246,25 @@ static bool validate_offsets(const ThdOffsets *offset)
#if !defined(MARIADB_BASE_VERSION) && MYSQL_VERSION_ID >= 80000
PSI_mutex_key key_LOCK_thd_query_validate=99999;
mysql_mutex_init(key_LOCK_thd_query_validate, &thd->LOCK_thd_query, MY_MUTEX_INIT_FAST);
#ifdef _DEBUG
my_mutex_t *mp = &thd->LOCK_thd_query.m_mutex;
if (mp == nullptr)
{
sql_print_information(
"%s validate offsets - mutex for query string is null", log_prefix);
}
else if (mp->m_u.m_safe_ptr != nullptr)
{
sql_print_information(
"%s validate offsets - mutex for query string is safe pointer", log_prefix);
}
else if (mp->m_u.m_safe_ptr == nullptr)
{
sql_print_information(
"%s validate offsets - mutex for query string is native pointer", log_prefix);
}
#endif
#endif
char buffer[2048] = {0};
thd_security_context(thd, buffer, 2048, 1000);
@ -1648,7 +1677,11 @@ const char *retrieve_command(THD *thd, bool &is_sql_cmd)
if (! cmd)
{
#if defined(MARIADB_BASE_VERSION) || MYSQL_VERSION_ID < 80000
cmd = command_name[command].str;
#else
cmd = compat::str_session(command);
#endif
}
#if MYSQL_VERSION_ID < 50600
@ -2015,6 +2048,8 @@ static void record_objs_string_update_extended(THD *thd, SYS_VAR *var, void *tgt
bool (*compat::_vio_socket_connect)(MYSQL_VIO vio, struct sockaddr *addr, socklen_t len, int timeout);
bool (*compat::_vio_socket_connect_80016)(MYSQL_VIO vio, struct sockaddr *addr, socklen_t len, bool nonblocking, int timeout);
bool (*compat::_vio_socket_connect_80020)(MYSQL_VIO vio, struct sockaddr *addr, socklen_t len, bool nonblocking, int timeout, bool *connect_done);
const std::string & (*compat::_str_session_80026)(int cmd);
const LEX_STRING *compat::_command_name;
#elif defined(HAVE_SESS_CONNECT_ATTRS) && defined(MARIADB_BASE_VERSION)
compat::pfs_thread_t compat::_pfs_thread_get_current_thread;
PSI_v1* compat::_psi_interface;
@ -2196,7 +2231,12 @@ static int audit_plugin_init(void *p)
// hot patch stuff
void * target_function = NULL;
#if defined(MARIADB_BASE_VERSION) || MYSQL_VERSION_ID < 50709
#if defined(MARIADB_BASE_VERSION) && MYSQL_VERSION_ID >= 100603
target_function = (void*)
(int (*)(THD *thd, bool is_called_from_prepared_stmt)) &mysql_execute_command;
#elif defined(MARIADB_BASE_VERSION) && MYSQL_VERSION_ID < 100603
target_function = (void*) mysql_execute_command;
#elif MYSQL_VERSION_ID < 50709
target_function = (void*) mysql_execute_command;
#else
target_function = (void*)
@ -2573,7 +2613,7 @@ mysql_declare_plugin(audit_plugin)
plugin_type,
&audit_plugin,
PLUGIN_NAME,
"McAfee Inc",
"Musarubra US LLC",
"AUDIT plugin, creates a file mysql-audit.log to log activity",
PLUGIN_LICENSE_GPL,
audit_plugin_init, /* Plugin Init */
@ -2597,7 +2637,7 @@ maria_declare_plugin(audit_plugin)
plugin_type, /* the plugin type (see include/mysql/plugin.h) */
&audit_plugin, /* pointer to type-specific plugin descriptor */
PLUGIN_NAME, /* plugin name */
"McAfee Inc", /* plugin author */
"Musarubra US LLC", /* plugin author */
"AUDIT plugin, creates a file mysql-audit.log to log activity", /* the plugin description */
PLUGIN_LICENSE_GPL, /* the plugin license (see include/mysql/plugin.h) */
audit_plugin_init, /* Pointer to plugin initialization function */