• Sergey Vojtovich's avatar
    BUG#12611785 - AUDIT INTERFACE STRICT-ALIASING WARNINGS · d0324fb2
    Sergey Vojtovich authored
    The types mysql_event_general/mysql_event_connection are
    being cast to the incompatible type mysql_event. The way
    mysql_event and the other types are designed are prone to
    strict aliasing violations and can break things depending
    on how compilers optimizes this code.
    
    This patch fixes audit interface, so it confirms to strict-
    aliasing rules. It introduces incompatible changes to audit
    interface:
    - mysql_event type has been removed;
    - event_class has been removed from mysql_event_generic and
      mysql_event_connection types;
    - st_mysql_audit::event_notify() second argument is event_class;
    - st_mysql_audit::event_notify() third argument is event of type
      (const void *).
    
    "Writing Audit Plugins" section of manual should be updated:
    http://dev.mysql.com/doc/refman/5.5/en/writing-audit-plugins.html
    
    include/mysql/plugin_audit.h:
      event_class has been moved out of mysql_event types.
    include/mysql/plugin_audit.h.pp:
      event_class has been moved out of mysql_event types.
    plugin/audit_null/audit_null.c:
      event_class has been moved out of mysql_event types.
    sql/sql_audit.cc:
      event_class has been moved out of mysql_event types.
    d0324fb2
plugin_audit.h 3.85 KB