An error occurred fetching the project authors.
  1. 05 Sep, 2014 1 commit
  2. 19 Jul, 2014 1 commit
  3. 17 Jul, 2014 1 commit
  4. 03 Jul, 2014 1 commit
  5. 06 Jan, 2014 1 commit
  6. 02 Jul, 2013 1 commit
  7. 03 Jun, 2011 1 commit
    • Sergey Vojtovich's avatar
      BUG#12611785 - AUDIT INTERFACE STRICT-ALIASING WARNINGS · 95963dd2
      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.
      95963dd2
  8. 14 Dec, 2010 1 commit
    • Sergey Vojtovich's avatar
      WL#5571 - Audit interface: MYSQL_AUDIT_GENERAL_STATUS event · 9a3e46c5
      Sergey Vojtovich authored
      include/mysql/plugin_audit.h:
        Connection auditing class.
      include/mysql/plugin_audit.h.pp:
        Connection auditing class.
      sql/mysqld.cc:
        Notify disconnect to auditing.
      sql/sql_audit.cc:
        Connection class event dispatcher.
      sql/sql_audit.h:
        mysql_audit_notify() is not available in embedded.
      sql/sql_connect.cc:
        Notify connect to auditing.
      sql/sql_parse.cc:
        Notify user change to auditing.
      9a3e46c5
  9. 20 Aug, 2010 1 commit
    • Sergey Vojtovich's avatar
      BUG#54989 - With null_audit installed, server hangs on an · b51c8cab
      Sergey Vojtovich authored
                  attempt to install a plugin twice
      
      Server crashes when [UN]INSTALL PLUGIN fails (returns an
      error) and general log is disabled and there are audit
      plugins interested in MYSQL_AUDIT_GENERAL_CLASS. 
      
      When audit event is triggered, audit subsystem acquires interested
      plugins by walking through plugin list. Evidently plugin list
      iterator protects plugin list by acquiring LOCK_plugin, see
      plugin_foreach_with_mask().
      
      On the other hand [UN]INSTALL PLUGIN is acquiring LOCK_plugin
      rather for a long time.
      
      When audit event is triggered during [UN]INSTALL PLUGIN, plugin
      list iterator acquires the same lock (within the same thread)
      second time.
      
      Repeatable only with general_log disabled, because general_log
      triggers MYSQL_AUDIT_GENERAL_LOG event, which acquires audit
      plugins before [UN]INSTALL PLUGIN acquired LOCK_plugin.
      
      With this fix we pre-acquire audit plugins for events that
      may potentially occur during [UN]INSTALL PLUGIN.
      
      This hack should be removed when LOCK_plugin is fixed so it
      protects only what it supposed to protect.
      
      No test case for this fix - we do not have facility to test
      audit plugins yet.
      
      sql/sql_audit.cc:
        Move "acquire audit plugin" logics to a separate
        function.
      sql/sql_audit.h:
        Move "acquire audit plugin" logics to a separate
        function.
      sql/sql_plugin.cc:
        Pre-acquire audit plugins for events that may potentially occur
        during [UN]INSTALL PLUGIN.
      b51c8cab
  10. 15 Apr, 2010 1 commit
    • Sergey Vojtovich's avatar
      BUG#47059 - In audit plugin I cannot see the event subclasses, · 8e793916
      Sergey Vojtovich authored
                  e.g.MYSQL_AUDIT_GENERAL_ERROR
      
      General audit API (MYSQL_AUDIT_GENERAL_CLASS) didn't expose event
      subclass to plugins.
      
      This patch exposes event subclass to plugins via
      struct mysql_event_general::event_subclass.
      
      This change is not compatible with existing general audit plugins.
      Audit interface major version has been incremented.
      
      include/mysql/plugin_audit.h:
        Expose event subclass to audit general plugins.
      plugin/audit_null/audit_null.c:
        Added distinct counters for general event sub-classes.
        
        Removed printf() from deinit(). One can easily see number of
        calls via status variables.
        
        To make code nicer, modified class mask to use macro instead
        of hardcoded number.
        
        Incremented audit plugin minor version.
      sql/sql_audit.cc:
        Expose event subclass to audit general plugins.
      8e793916
  11. 31 Mar, 2010 1 commit
    • Mats Kindahl's avatar
      WL#5030: Split and remove mysql_priv.h · 23d8586d
      Mats Kindahl authored
      This patch:
      
      - Moves all definitions from the mysql_priv.h file into
        header files for the component where the variable is
        defined
      - Creates header files if the component lacks one
      - Eliminates all include directives from mysql_priv.h
      - Eliminates all circular include cycles
      - Rename time.cc to sql_time.cc
      - Rename mysql_priv.h to sql_priv.h
      23d8586d
  12. 15 Dec, 2009 1 commit
    • Sergey Vojtovich's avatar
      Backport from 6.0-codebase. · 45f2e0a7
      Sergey Vojtovich authored
      WL#3771
        "Audit Plugin Interface"
        Implement new plug-in type - AUDIT
        New plug-in: audit_null
          simply increments counter for how many times it was called.
      
      include/Makefile.am:
        wl3771
          add new headers to distribution
      include/mysql/plugin.h:
        wl3771
          define new AUDIT plugin type
          Split out fulltext plugin type into its own header
      include/mysql/plugin.h.pp:
        wl3771
          no real API change, just re-arranged some code
      include/mysql/plugin_audit.h:
        wl3771
          pluggable audit interface
      include/mysql/plugin_ftparser.h:
        wl3771
          Split out fulltext plugin type into its own header
      libmysqld/CMakeLists.txt:
        wl3771
          add sql_audit.cc to build
      libmysqld/Makefile.am:
        wl3771
          add sql_audit.cc to build
      plugin/audit_null:
        wl3771
          an example plugin for testing pluggable audit interface
      plugin/audit_null/Makefile.am:
        wl3771
          an example plugin for testing pluggable audit interface
      plugin/audit_null/audit_null.c:
        wl3771
          an example plugin for testing pluggable audit interface
      plugin/audit_null/plug.in:
        wl3771
          an example plugin for testing pluggable audit interface
      sql/CMakeLists.txt:
        wl3771
          add sql_audit.cc to build
      sql/Makefile.am:
        wl3771
          add sql_audit.cc to build
      sql/event_queue.cc:
        wl3771
          release audit resources before waiting
      sql/log.cc:
        wl3771
          add general audit call for log
      sql/mysqld.cc:
        wl3771
          add audit initialize/finalize
          add general audit call for error
      sql/sql_audit.cc:
        wl3771
          pluggable audit interface implementation
      sql/sql_audit.h:
        wl3771
          pluggable audit interface implementation
      sql/sql_class.cc:
        wl3771
          add thd audit init/deinit calls
      sql/sql_class.h:
        wl3771
          add required data structures for audit to THD
      sql/sql_connect.cc:
        wl3771
          release audit resources before waiting
      sql/sql_insert.cc:
        wl3771
          release audit plugins before waiting
      sql/sql_parse.cc:
        wl3771
          add general audit call for results
      sql/sql_plugin.cc:
        wl3771
          add declarations for audit plugin type
      45f2e0a7