1. 07 Feb, 2011 2 commits
    • Dmitry Lenev's avatar
      Merged fix for bug #36544 "DROP USER does not remove stored · 774b2e27
      Dmitry Lenev authored
      function privileges" into 5.5 tree. Did after-merge fixes.
      774b2e27
    • Dmitry Lenev's avatar
      Fix for bug#36544 "DROP USER does not remove stored function · fc725556
      Dmitry Lenev authored
      privileges".
      
      The first problem was that DROP USER didn't properly remove privileges 
      on stored functions from in-memory structures. So the dropped user
      could have called stored functions on which he had privileges before
      being dropped while his connection was still around.
      Even worse if a new user with the same name was created he would
      inherit privileges on stored functions from the dropped user.
      Similar thing happened with old user name and function privileges
      during RENAME USER.
      
      This problem stemmed from the fact that the handle_grant_data() function
      which handled DROP/RENAME USER didn't take any measures to update
      in-memory hash with information about function privileges after
      updating them on disk.
      
      This patch solves this problem by adding code doing just that.
      
      The second problem was that RENAME USER didn't properly update in-memory
      structures describing table-level privileges and privileges on stored 
      procedures. As result such privileges could have been lost after a rename
      (i.e. not associated with the new name of user) and inherited by a new
      user with the same name as the old name of the original user.
      
      This problem was caused by code handling RENAME USER in
      handle_grant_struct() which [sic!]:
      a) tried to update wrong (tables) hash when updating stored procedure
         privileges for new user name.
      b) passed wrong arguments to function performing the hash update and
         didn't take into account the way in which such update could have
         changed the order of the hash elements.
      
      This patch solves this problem by ensuring that a) the correct hash
      is updated, b) correct arguments are used for the hash_update()
      function and c) we take into account possible changes in the order
      of hash elements.
      
      mysql-test/r/grant.result:
        Added test coverage for bug#36544 "DROP USER does not remove stored
        function privileges".
      mysql-test/suite/funcs_1/r/innodb_storedproc_06.result:
        Since after fixing bug#36544 "DROP USER does not remove stored function
        privileges" in-memory structures are correctly updated by DROP USER,
        DROP FUNCTION performed after DROP USER for its definer no longer
        produces unwarranted warning/error messages.
      mysql-test/suite/funcs_1/r/memory_storedproc_06.result:
        Since after fixing bug#36544 "DROP USER does not remove stored function
        privileges" in-memory structures are correctly updated by DROP USER,
        DROP FUNCTION performed after DROP USER for its definer no longer
        produces unwarranted warning/error messages.
      mysql-test/suite/funcs_1/r/myisam_storedproc_06.result:
        Since after fixing bug#36544 "DROP USER does not remove stored function
        privileges" in-memory structures are correctly updated by DROP USER,
        DROP FUNCTION performed after DROP USER for its definer no longer
        produces unwarranted warning/error messages.
      mysql-test/t/grant.test:
        Added test coverage for bug#36544 "DROP USER does not remove stored
        function privileges".
      sql/sql_acl.cc:
        Changed handle_grant_data() to also update hash with function 
        privileges. This allows DROP/RENAME USER correctly keep this 
        in-memory structure up-to-date.
        
        To do this extended handle_grant_struct() to support updating of this
        hash. In addition fixed code in this function which is responsible for 
        handling of column and routine hashes during RENAME USER, ensured that
        we correctly update these hashes after changing user name and that we
        don't skip elements while iterating through the hash and doing updates.
      fc725556
  2. 28 Jan, 2011 3 commits
  3. 27 Jan, 2011 3 commits
  4. 26 Jan, 2011 8 commits
  5. 25 Jan, 2011 2 commits
  6. 24 Jan, 2011 1 commit
  7. 21 Jan, 2011 1 commit
    • Bjorn Munch's avatar
      Bug #59063 rpl_migration_crash_safe fails on Windows · a32b2699
      Bjorn Munch authored
      Race condition may occur: mtr sees the .expect file but it's empty
      Fix: wait and try again if file is empty
      Addendum: try again if line isn't 'wait' or 'restart'
      Also added verbose printout of extra restart options
      a32b2699
  8. 20 Jan, 2011 1 commit
  9. 19 Jan, 2011 4 commits
  10. 18 Jan, 2011 7 commits
    • Libing Song's avatar
      Bug#58546 test rpl_packet timeout failure sporadically on PB · 84e4bdbf
      Libing Song authored
                  
      rpl_packet got a timeout failure sporadically on PB when stopping
      slave. The real reason of this bug is that STOP SLAVE stopped
      IO thread first and then stopped SQL thread. It was
      possible that IO thread stopped after replicating part of a
      transaction which SQL thread was executing. SQL thread would
      be hung if the transaction could not be rolled back safely.
                  
      After this patch, STOP SLAVE will stop SQL thread first and then stop IO
      thread, which guarantees that IO thread will fetch the reset of the
      events of the transaction that SQL thread is executing, so that SQL
      thread can finish the transaction if it cannot be rolled back safely.
                  
      Added below auxiliary files to make the test code neater.
      restart_slave_sql.inc
      rpl_connection_master.inc
      rpl_connection_slave.inc
      rpl_connection_slave1.inc
      84e4bdbf
    • Bjorn Munch's avatar
      Bug #59063 rpl_migration_crash_safe fails on Windows · 0bb2c151
      Bjorn Munch authored
      Undoing the patch, it complicates the code but is not the solution
      
      I do not beleive newline mismatch could be the cause of this failure
      First, I cannot see how this could be a problem, mtr ignores the newline
        when reading the expect file, and the file is written and read on Windows.
      Second, if this really was the problem it should have been deterministic:
        either the newline is correctly interepreted or it is not.
      0bb2c151
    • Bjorn Munch's avatar
      oops forgot one file in last commit · 3565f4fd
      Bjorn Munch authored
      3565f4fd
    • Bjorn Munch's avatar
      Some more copyright fixes in mtr · 057eaa03
      Bjorn Munch authored
      057eaa03
    • Bjorn Munch's avatar
      Fixed copyright headers in mtr src files · eb420d82
      Bjorn Munch authored
      eb420d82
    • Alexander Barkov's avatar
      Bug#44332 my_xml_scan reads behind the end of buffer · 19f4e4d6
      Alexander Barkov authored
      Problem: the scanner function tested for strings "<![CDATA[" and
      "-->" without checking input string boundaries, which led to valgrind's
      "Conditional jump or move depends on uninitialised value(s)" error.
      
      Fix: Adding boundary checking.
      
        @ mysql-test/r/xml.result
        @ mysql-test/t/xml.test
        Adding test
      
        @ strings/xml.c
        Adding a helper function my_xml_parser_prefix_cmp(),
        with input string boundary check.
      19f4e4d6
    • Vinay Fisrekar's avatar
      · 5302bb48
      Vinay Fisrekar authored
      BUG#58858 : sys_vars.innodb_max_dirty_pages_pct_func fails sporadically
      
      Committing After latest merge.      
      Modified check_pct procedure to check return value of wait condition instead 
      of calling "dirty_pct".
         
      Adding Review comments:
      1) Added comment for success variable value
      2) Procedure check_pct changed For Adding BOOLEAN input and SELECT QUERY Change
      5302bb48
  11. 17 Jan, 2011 3 commits
    • Alexander Barkov's avatar
      Bug#58371 Assertion failed: !s.uses_buffer_owned_by(this) with format string function · 271514a7
      Alexander Barkov authored
      Introduced by the fix for bug#44766.
      
      Problem: it's not correct to use args[0]->str_value as a buffer,
      because args[0] may need this buffer for its own purposes.
      
      Fix: adding a new class member tmp_value to use as return value.
      
        @ mysql-test/r/ctype_many.result
        @ mysql-test/t/ctype_many.test
        Adding tests
      
        @ sql/item_strfunc.cc
        Changing code into traditional style:
        use "str" as a buffer for the argument and tmp_value for the result value.
      
        @ sql/item_strfunc.h
        Adding tmp_value
      271514a7
    • Alexander Barkov's avatar
      Bug#59149 valgrind warnings with "like .. escape .." function · a084545f
      Alexander Barkov authored
            
      Problem: when processing a query like:
        SELECT '' LIKE '1' ESCAPE COUNT(1);
      escape_item->val_str() was never executed and the "escape" class member
      stayed initialized, which led to valgrind uninitialized memory error.
            
      Note, a query with some tables in "FROM" clause
      returns ER_WRONG_ARGUMENTS in the same situation:
      
         SELECT '' LIKE '1' ESCAPE COUNT(1) FROM t1;
         ERROR 1210 (HY000): Incorrect arguments to ESCAPE
      
      Fix: disallowing using aggregate functions in ESCAPE clause,
      even if there are no tables used. There is no much use of that anyway.
      a084545f
    • Bjorn Munch's avatar
      merge from 5.1 main · 1f99a0da
      Bjorn Munch authored
      1f99a0da
  12. 15 Jan, 2011 3 commits
    • Nirbhay Choubey's avatar
      Bug#58221 : mysqladmin --sleep=x --count=x keeps looping · c884d136
      Nirbhay Choubey authored
      When mysqldadmin is run with sleep and count options,
      it goes into an infinite loop and keeps executing the
      specified command.
      
      This happened because the statement, responsible for
      decrementing the count value, was missing.
      
      Fixed by adding a statement which will decrement the
      count value for each iteration.
      
      
      client/mysqladmin.cc:
        Bug#58221 : mysqladmin --sleep=x --count=x keeps looping
        
        Added a condition to check and decrement the count
        value stored in nr_iterations per iteration.
      mysql-test/r/mysqladmin.result:
        Added a testcase for Bug#58221.
      mysql-test/t/mysqladmin.test:
        Added a testcase for Bug#58221.
      c884d136
    • unknown's avatar
      Null merge from 5.0 · d69860ea
      unknown authored
      It is a backported patch.
      d69860ea
    • unknown's avatar
      BUG#49124 Security issue with /*!-versioned */ SQL statements on Slave · 263e63a4
      unknown authored
      Backport to 5.0.
      
      /*![:version:] Query Code */, where [:version:] is a sequence of 5 
      digits representing the mysql server version(e.g /*!50200 ... */),
      is a special comment that the query in it can be executed on those 
      servers whose versions are larger than the version appearing in the 
      comment. It leads to a security issue when slave's version is larger 
      than master's. A malicious user can improve his privileges on slaves. 
      Because slave SQL thread is running with SUPER privileges, so it can
      execute queries that he/she does not have privileges on master.
            
      This bug is fixed with the logic below: 
      - To replace '!' with ' ' in the magic comments which are not applied on
        master. So they become common comments and will not be applied on slave.
            
      - Example:
        'INSERT INTO t1 VALUES (1) /*!10000, (2)*/ /*!99999 ,(3)*/
         will be binlogged as
        'INSERT INTO t1 VALUES (1) /*!10000, (2)*/ /* 99999 ,(3)*/
      263e63a4
  13. 14 Jan, 2011 2 commits
    • Alexey Botchkov's avatar
      Bug#52208 gis fails on some platforms (Solaris, HP-UX, Linux) · 9e8935eb
      Alexey Botchkov authored
              IA64 and some other arcitectures use different float rounding mode and
              i find no decent way to make it consistent.
              So the test changed to be insensitive to this.
      
      per-file messages:
        mysql-test/t/gis.test
      Bug#52208      gis fails on some platforms (Solaris, HP-UX, Linux)
              --replace_result added
      9e8935eb
    • John H. Embretsen's avatar
      Bug#56895 part 2 of 2: Backport of revid... · db0be19f
      John H. Embretsen authored
      Bug#56895 part 2 of 2: Backport of revid holyfoot@mysql.com-20100825135522-8wrjjmvh2u2t0qo6 from mysql-5.5.
      Without this patch mysqlhotcopy tests would fail due to not finding the mysqlhotcopy tool in release-like builds.
      With this patch the tests would either pass, or fail due to missing Perl modules (see 56817).
      Text conflict in mysql-test/mysql-test-run.pl:
       - resolved by using logic from 5.5 to find mysqlhotcopy, the intention of this backport. Changed bindir to basedir.
      
      db0be19f