1. 16 Dec, 2010 6 commits
  2. 15 Dec, 2010 2 commits
    • 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 2 commits
  4. 06 Dec, 2010 1 commit
    • 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
  5. 03 Dec, 2010 2 commits
  6. 30 Nov, 2010 1 commit
  7. 26 Nov, 2010 2 commits
  8. 25 Nov, 2010 1 commit
  9. 24 Nov, 2010 8 commits
    • Gleb Shchepa's avatar
      backport of bug #54461 from 5.1-security to 5.0-security · d85c3053
      Gleb Shchepa authored
       > revision-id: gshchepa@mysql.com-20100801181236-uyuq6ewaq43rw780
       > parent: alexey.kopytov@sun.com-20100723115254-jjwmhq97b9wl932l
       > committer: Gleb Shchepa <gshchepa@mysql.com>
       > branch nick: mysql-5.1-security
       > timestamp: Sun 2010-08-01 22:12:36 +0400
       > Bug #54461: crash with longblob and union or update with subquery
       >
       > Queries may crash, if
       >   1) the GREATEST or the LEAST function has a mixed list of
       >      numeric and LONGBLOB arguments and
       >   2) the result of such a function goes through an intermediate
       >      temporary table.
       >
       > An Item that references a LONGBLOB field has max_length of
       > UINT_MAX32 == (2^32 - 1).
       >
       > The current implementation of GREATEST/LEAST returns REAL
       > result for a mixed list of numeric and string arguments (that
       > contradicts with the current documentation, this contradiction
       > was discussed and it was decided to update the documentation).
       >
       > The max_length of such a function call was calculated as a
       > maximum of argument max_length values (i.e. UINT_MAX32).
       >
       > That max_length value of UINT_MAX32 was used as a length for
       > the intermediate temporary table Field_double to hold
       > GREATEST/LEAST function result.
       >
       > The Field_double::val_str() method call on that field
       > allocates a String value.
       >
       > Since an allocation of String reserves an additional byte
       > for a zero-termination, the size of String buffer was
       > set to (UINT_MAX32 + 1), that caused an integer overflow:
       > actually, an empty buffer of size 0 was allocated.
       >
       > An initialization of the "first" byte of that zero-size
       > buffer with '\0' caused a crash.
       >
       > The Item_func_min_max::fix_length_and_dec() has been
       > modified to calculate max_length for the REAL result like
       > we do it for arithmetical operators.
      d85c3053
    • Alexander Nozdrin's avatar
      Merge from mysql-5.0-security. · 1490f187
      Alexander Nozdrin authored
      1490f187
    • Alexander Nozdrin's avatar
      A follow-up for Bug#58339 (Replace Server GPL README file). · b6b7fb2b
      Alexander Nozdrin authored
      Fix formatting issues in README file.
      b6b7fb2b
    • Alexander Nozdrin's avatar
      Empty merge from mysql-5.0-security. · 51d121b4
      Alexander Nozdrin authored
      51d121b4
    • Alexander Nozdrin's avatar
      Merge from mysql-5.1-bugteam. · 7642b388
      Alexander Nozdrin authored
      7642b388
    • Alexander Nozdrin's avatar
      Merge from mysql-5.0-bugteam. · 47cfb2c5
      Alexander Nozdrin authored
      47cfb2c5
    • Alexander Nozdrin's avatar
      Merge from mysql-5.0-bugteam. · d7a4672c
      Alexander Nozdrin authored
      d7a4672c
    • Alexander Nozdrin's avatar
      A follow-up for Bug#58340 (Remove Server GPL EXCEPTIONS-CLIENT file) -- remove all · 174a6962
      Alexander Nozdrin authored
      EXCEPTIONS-CLIENT from all the places.
      174a6962
  10. 23 Nov, 2010 4 commits
  11. 22 Nov, 2010 7 commits
  12. 20 Nov, 2010 1 commit
  13. 18 Nov, 2010 1 commit
    • Georgi Kodinov's avatar
      Bug #50021: Windows standard configuration files are showing Linux · 589428b6
      Georgi Kodinov authored
       options/settings
       
       1. Changed the default value for socket on Windows to the windows
       default
       2. Removed hard-coded trailing slashes from innodb_data_home_dir
       and innodb_log_group_name_dir.
       3. Added extra backslashes to the innodb directory example
       4. Made the tempdir platform "dependent"
       5. Fixed the comments in the .ini files
       6. Removed the tmpdir from the templates and the scripts
      589428b6
  14. 19 Nov, 2010 1 commit
  15. 18 Nov, 2010 1 commit