1. 07 Oct, 2011 2 commits
    • Magne Mahre's avatar
      Merge from 5.1-security · ed110e13
      Magne Mahre authored
      ed110e13
    • Magne Mahre's avatar
      BUG#12589870 CRASHES WITH MULTIQUERY PACKET + USE<DB> + QUERY CACHE · 584a6780
      Magne Mahre authored
       
      A buffer large enough to hold the query _plus_ some additional
      data is allocated before parsing is started.   The additional data 
      is used by the query cache, and consists of the name of the current 
      database and a set of flags.
       
      When a packet containing multiple SQL statements is sent to the
      server and one of the statements changes the current database
      (a "USE <db>" statement), and the name of the new current database 
      is longer than of the previous,  there is not enough space in the 
      buffer for the new name, and we write out over the buffer boundary.
      
      The fix adds an extra field to store the number of bytes
      allocated to the database name in the buffer.  If the current
      database name changes, and the new name is longer than the
      previous one, we refuse to cache the query.
      584a6780
  2. 23 Sep, 2011 1 commit
  3. 22 Sep, 2011 1 commit
    • Alexander Nozdrin's avatar
      Fix for Bug#13001491: MYSQL_REFRESH CRASHES WHEN STORED ROUTINES ARE RUN CONCURRENTLY. · 883f362d
      Alexander Nozdrin authored
      The main problem was that lex_start() was forgotten to be called before processing
      COM_REFRESH.
      
      Another problem discovered was that if failures to flush the error log were not properly
      handled, which resulted in the server crash.
      
      The user-visible effect of these problems were:
        - if COM_REFRESH command was sent after SQL-queries of some sort,
          the server would crash.
        - if COM_REFRESH was requested with REFRESH_LOG only, and the error log
          failed to flush, the server would crash. The error log fails to flush
          when it points to unavailable file (for example, due to restricted
          permissions).
      
      The fixes are:
        - call lex_start() in the beginning of COM_REFRESH;
        - handle failures to flush the error log properly, i.e. raise ER_UNKNOWN_ERROR.
      
      sql/sql_parse.cc:
        Fix for Bug#13001491: MYSQL_REFRESH CRASHES WHEN STORED ROUTINES ARE RUN CONCURRENTLY.
      tests/mysql_client_test.c:
        A test case for Bug#13001491: MYSQL_REFRESH CRASHES WHEN STORED ROUTINES
        ARE RUN CONCURRENTLY.
      883f362d
  4. 15 Sep, 2011 6 commits
  5. 06 Sep, 2011 1 commit
  6. 24 Aug, 2011 1 commit
  7. 23 Aug, 2011 2 commits
  8. 19 Aug, 2011 1 commit
  9. 17 Aug, 2011 3 commits
  10. 13 Aug, 2011 1 commit
    • Dmitry Shulga's avatar
      Fixed Bug#12621017 - CRASH IF A SP VARIABLE IS USED IN THE LIMIT CLAUSE OF A · 58c33d1c
      Dmitry Shulga authored
      SET STATEMENT.
      
      Server built with debug asserts, without debug crashes if a user tries
      to run a stored procedure that constains query with subquery that include
      either LIMIT or LIMIT OFFSET clauses.
      
      The problem was that Item::fix_fields() was not called for the items
      representing LIMIT or OFFSET clauses.
      
      The solution is to call Item::fix_fields() right before evaluation in
      st_select_lex_unit::set_limit().
      
      mysql-test/r/sp.result:
        Added testcase result for bug#12621017. Updated testcase result for
        bug 11918.
      mysql-test/t/sp.test:
        Added testcase for bug#12621017. Addressed review comments for Bug 11918
        (added tests for use LIMIT at stored function).
      sql/item.h:
        Addressed review comments for Bug 11918.
      sql/share/errmsg-utf8.txt:
        Addressed review comments for Bug 11918.
      sql/sp_head.cc:
        Addressed review comments for Bug 11918.
      sql/sql_lex.cc:
        Added call fix_fields() for item just before its evaluation.
      sql/sql_yacc.yy:
        Addressed review comments for Bug 11918.
      58c33d1c
  11. 12 Aug, 2011 4 commits
    • Georgi Kodinov's avatar
      merge · 977ab26c
      Georgi Kodinov authored
      977ab26c
    • Georgi Kodinov's avatar
      Bug #11765565: 58548: 5.5.X NEEDS TO LINK TO THE CORESERVICES FRAMEWORK · bc401a79
      Georgi Kodinov authored
        FOR SOME PLUGINS TO WORK
      
      Some dynamically loadable plugins on the Mac may need functions from the 
      CoreServices framework. Unfortunately the only place where this can be initialized
      is the main executable. Thus to allow plugins to use functions from that framework
      the mysqld binary needs to link to the framework.
      bc401a79
    • Georgi Kodinov's avatar
      Bug #12818542: PAM: ADDING PASSWORD FOR AN ACCOUNT DISABLES · 9b5d4a92
      Georgi Kodinov authored
      PAM AUTHENTICATION SETTINGS
      
      SET PASSWORD code on a account with plugin authentication was errorneously
      resetting the in-memory plugin pointer for the user back to native password 
      plugin despite the fact that it was sending a warning that the command has 
      no immediate effect.
      Fixed by not updating the user's plugin if it's already set to a non default value.
      Note that the bug affected only the in-memory cache of the user definitions.
      Any restart of the server will fix the problem.
      Also the salt and the password has are still stored into the user tables (just as 
      it's documented now).
      Test case added.
      One old test case result updated  to have the correct value.
      9b5d4a92
    • Georgi Kodinov's avatar
      bumped up the version to 5.5.18 · cf9c61bf
      Georgi Kodinov authored
      cf9c61bf
  12. 11 Aug, 2011 1 commit
  13. 10 Aug, 2011 4 commits
  14. 09 Aug, 2011 3 commits
  15. 08 Aug, 2011 2 commits
  16. 05 Aug, 2011 1 commit
  17. 03 Aug, 2011 1 commit
    • Gleb Shchepa's avatar
      backport from mysql-trunk · 69505e51
      Gleb Shchepa authored
      BUG #11754979 - 46675: ON DUPLICATE KEY UPDATE AND UPDATECOUNT() POSSIBLY WRONG 
      
      The mysql_affected_rows() client call returns 3 instead of 2 on
      INSERT ... ON DUPLICATE KEY UPDATE query with a duplicated key value.
      
      The fix for the old bug #29692 was incomplete: unnecessary double
      increment of "touched" rows still happened.
      
      This bugfix removes:
      1) unneeded increment of "touched" rows and
      2) useless double resetting of auto-increment value.
      
      
      sql/sql_insert.cc:
        write_record() function:
        Unneeded increment of "touched" rows and useless double resetting
        of auto-increment value has been removed.
      tests/mysql_client_test.c:
        New test case.
      69505e51
  18. 02 Aug, 2011 2 commits
    • Sergey Glukhov's avatar
      5.1 -> 5.5 merge · 1b101953
      Sergey Glukhov authored
      1b101953
    • Sergey Glukhov's avatar
      Bug#11766594 59736: SELECT DISTINCT.. INCORRECT RESULT WITH DETERMINISTIC FUNCTION IN WHERE C · 09c2a14a
      Sergey Glukhov authored
      There is an optimization of DISTINCT in JOIN::optimize()
      which depends on THD::used_tables value. Each SELECT statement
      inside SP resets used_tables value(see mysql_select()) and it
      leads to wrong result. The fix is to replace THD::used_tables
      with LEX::used_tables.
      
      
      mysql-test/r/sp.result:
        test case
      mysql-test/t/sp.test:
        test case
      sql/sql_base.cc:
        THD::used_tables is replaced with LEX::used_tables
      sql/sql_class.cc:
        THD::used_tables is replaced with LEX::used_tables
      sql/sql_class.h:
        THD::used_tables is replaced with LEX::used_tables
      sql/sql_insert.cc:
        THD::used_tables is replaced with LEX::used_tables
      sql/sql_lex.cc:
        THD::used_tables is replaced with LEX::used_tables
      sql/sql_lex.h:
        THD::used_tables is replaced with LEX::used_tables
      sql/sql_prepare.cc:
        THD::used_tables is replaced with LEX::used_tables
      sql/sql_select.cc:
        THD::used_tables is replaced with LEX::used_tables
      09c2a14a
  19. 28 Jul, 2011 1 commit
  20. 27 Jul, 2011 2 commits