1. 16 Dec, 2010 3 commits
  2. 15 Dec, 2010 3 commits
    • Alexander Nozdrin's avatar
      Auto-merge from mysql-5.1-security. · 561a25e7
      Alexander Nozdrin authored
      561a25e7
    • Alexander Nozdrin's avatar
      Auto-merge from mysql-5.0-security. · 0e275f89
      Alexander Nozdrin authored
      0e275f89
    • Alexander Nozdrin's avatar
      Patch for Bug#57952 (privilege change is not taken into account by EXECUTE). · 39036ca6
      Alexander Nozdrin authored
      The user-visible problem was that changes to column-level privileges,
      happened in between of PREPARE and EXECUTE of a prepared statement, were
      neglected. I.e. a prepared statement could be executed with the
      column-level privileges as of PREPARE-time. The problem existed for
      column-level privileges only.
      
      A similar problem existed for stored programs: the changes between
      executions didn't have an effect.
      
      Technically the thing is that table references are cached in
      Prepared_statement::prepare() call. In subsequent
      Prepared_statement::execute() calls those cached values are used.
      There are two functions to get a field by name: find_field_in_table() and
      find_field_in_table_ref(). On prepare-phase find_field_in_table_ref() is
      called, on execute-phase -- find_field_in_table() because the table is
      cached. find_field_in_table() does not check column-level privileges and
      expects the caller to do that. The problem was that this check was
      forgotten.
      
      The fix is to check them there as it happens in find_field_in_table_ref().
      39036ca6
  3. 08 Dec, 2010 4 commits
  4. 06 Dec, 2010 2 commits
    • Gleb Shchepa's avatar
      Bug #57187: more user variable fun with multiple · a44b5444
      Gleb Shchepa authored
                  assignments and comparison in query
      
      A query that compares assignments of the same
      user variable caused Valgrind warnings: access
      to freed memory region.
      
      In case of a DECIMAL argument the assignment
      operator (:=) may return a pointer to a stored
      value instead of its copy when evaluated.
      The next assignment to the same variable may:
       a) overwrite the stored value with a new one
          and return the same pointer or even
       b) reallocate stored value.
      
      Thus, if we evaluate an assignment and keep
      the result pointer and then evaluate another
      assignment to the same variable, then the
      kept result pointer of the first assignment
      will point to unexpectedly changed data or
      it may be a dead pointer.
      
      That may cause wrong data or crash.
      
      The user_var_entry::val_decimal method has
      been modified to copy user variable data.
      a44b5444
    • Jimmy Yang's avatar
      Fix Bug #58643 InnoDB: too long table name · 19a2f5cd
      Jimmy Yang authored
      rb://531 approved by Sunny Bains
      19a2f5cd
  5. 03 Dec, 2010 3 commits
  6. 30 Nov, 2010 2 commits
  7. 26 Nov, 2010 2 commits
  8. 25 Nov, 2010 2 commits
  9. 24 Nov, 2010 19 commits