1. 21 Jun, 2010 3 commits
  2. 18 Jun, 2010 1 commit
    • Ramil Kalimullin's avatar
      Fix for bug #54393: crash and/or valgrind errors in · edc22384
      Ramil Kalimullin authored
      mysql_client_binlog_statement
      
      Problem: server may read from unassigned memory performing
      "wrong" BINLOG queries.
      
      Fix: never read from unassigned memory.
      
      
      mysql-test/suite/binlog/r/binlog_base64_flag.result:
        Fix for bug #54393: crash and/or valgrind errors in
        mysql_client_binlog_statement
          - test result.
      mysql-test/suite/binlog/t/binlog_base64_flag.test:
        Fix for bug #54393: crash and/or valgrind errors in
        mysql_client_binlog_statement
          - test case.
      sql/sql_binlog.cc:
        Fix for bug #54393: crash and/or valgrind errors in
        mysql_client_binlog_statement
          - coded_len should not count trailing '/0';
          - never read from unassigned memory.
      edc22384
  3. 17 Jun, 2010 3 commits
  4. 15 Jun, 2010 11 commits
  5. 14 Jun, 2010 4 commits
    • Bjorn Munch's avatar
      Upmerge and port 46882 · cd756eb3
      Bjorn Munch authored
      cd756eb3
    • Bjorn Munch's avatar
      Upmerge and port 46882 · 9a843793
      Bjorn Munch authored
      9a843793
    • Bjorn Munch's avatar
      Bug #46882 Suite timeout doesn't kill stray processes · e90fc90d
      Bjorn Munch authored
      Kill mysqltest and call mtr_kill_leftovers() before terminating
      e90fc90d
    • Tor Didriksen's avatar
      Bug #53261 MTR tests archive_plugin and blackhole_plugin fail when compiling with cmake · 675bf291
      Tor Didriksen authored
      Let mtr lookup the plugins, rather than hard-coding autotools lib path.
      
      
      mysql-test/include/not_parallel.inc:
        Add new feature for skipping when running in parallel.
      mysql-test/mysql-test-run.pl:
        Use find_plugin to locate plugins.
        Export opt_parallel in environment.
      mysql-test/suite/federated/federated_plugin-master.opt:
        Use plugin dir from mtr.
      mysql-test/suite/federated/federated_plugin.test:
        Skip test, disabled.
      mysql-test/t/archive_plugin-master.opt:
        Use plugin dir from mtr.
      mysql-test/t/archive_plugin.test:
        Skip test if running in parallel.
      mysql-test/t/blackhole_plugin-master.opt:
        Use plugin dir from mtr.
      mysql-test/t/blackhole_plugin.test:
        Skip test if running in parallel.
      675bf291
  6. 12 Jun, 2010 2 commits
  7. 11 Jun, 2010 12 commits
  8. 10 Jun, 2010 4 commits
    • Davi Arnaut's avatar
      Bug#42733: Type-punning warnings when compiling MySQL -- · fd4b3c6c
      Davi Arnaut authored
                  strict aliasing violations.
      
      One somewhat major source of strict-aliasing violations and
      related warnings is the SQL_LIST structure. For example,
      consider its member function `link_in_list` which takes
      a pointer to pointer of type T (any type) as a pointer to
      pointer to unsigned char. Dereferencing this pointer, which
      is done to reset the next field, violates strict-aliasing
      rules and might cause problems for surrounding code that
      uses the next field of the object being added to the list.
      
      The solution is to use templates to parametrize the SQL_LIST
      structure in order to deference the pointers with compatible
      types. As a side bonus, it becomes possible to remove quite
      a few casts related to acessing data members of SQL_LIST.
      
      sql/handler.h:
        Use the appropriate template type argument.
      sql/item.cc:
        Remove now-unnecessary cast.
      sql/item_subselect.cc:
        Remove now-unnecessary casts.
      sql/item_sum.cc:
        Use the appropriate template type argument.
        Remove now-unnecessary cast.
      sql/mysql_priv.h:
        Move SQL_LIST structure to sql_list.h
        Use the appropriate template type argument.
      sql/sp.cc:
        Remove now-unnecessary casts.
      sql/sql_delete.cc:
        Use the appropriate template type argument.
        Remove now-unnecessary casts.
      sql/sql_derived.cc:
        Remove now-unnecessary casts.
      sql/sql_lex.cc:
        Remove now-unnecessary casts.
      sql/sql_lex.h:
        SQL_LIST now takes a template type argument which must
        match the type of the elements of the list. Use forward
        declaration when the type is not available, it is used
        in pointers anyway.
      sql/sql_list.h:
        Rename SQL_LIST to SQL_I_List. The template parameter is
        the type of object that is stored in the list.
      sql/sql_olap.cc:
        Remove now-unnecessary casts.
      sql/sql_parse.cc:
        Remove now-unnecessary casts.
      sql/sql_prepare.cc:
        Remove now-unnecessary casts.
      sql/sql_select.cc:
        Remove now-unnecessary casts.
      sql/sql_show.cc:
        Remove now-unnecessary casts.
      sql/sql_table.cc:
        Remove now-unnecessary casts.
      sql/sql_trigger.cc:
        Remove now-unnecessary casts.
      sql/sql_union.cc:
        Remove now-unnecessary casts.
      sql/sql_update.cc:
        Remove now-unnecessary casts.
      sql/sql_view.cc:
        Remove now-unnecessary casts.
      sql/sql_yacc.yy:
        Remove now-unnecessary casts.
      storage/myisammrg/ha_myisammrg.cc:
        Remove now-unnecessary casts.
      fd4b3c6c
    • Davi Arnaut's avatar
      Bug#42733: Type-punning warnings when compiling MySQL -- · 486f9c05
      Davi Arnaut authored
                 strict aliasing violations.
      
      Essentially, the problem is that large parts of the server were
      developed in simpler times (last decades, pre C99 standard) when
      strict aliasing and compilers supporting such optimizations were
      rare to non-existent. Thus, when compiling the server with a modern
      compiler that uses strict aliasing rules to perform optimizations,
      there are several places in the code that might trigger undefined
      behavior.
      
      As evinced by some recent bugs, GCC does a somewhat good of job
      misoptimizing such code, but on the other hand also gives warnings
      about suspicious code. One problem is that the warnings aren't
      always accurate, yet we can't afford to just shut them off as we
      might miss real cases. False-positive cases are aggravated mostly
      by casts that are likely to trigger undefined behavior.
      
      The solution is to start a cleanup process focused on fixing and
      reducing the amount of strict-aliasing related warnings produced
      by GCC and others compilers. A good deal of noise reduction can
      be achieved by just removing useless casts that are product of
      historical cruft and are likely to trigger undefined behavior if
      dereferenced.
      
      client/mysql.cc:
        Remove now-unnecessary casts.
        Break up large strings.
      client/mysql_upgrade.c:
        Remove now-unnecessary casts.
      client/mysqladmin.cc:
        Remove now-unnecessary casts.
        Break up large strings.
      client/mysqlbinlog.cc:
        Remove now-unnecessary casts.
      client/mysqlcheck.c:
        Remove now-unnecessary casts.
      client/mysqldump.c:
        Remove now-unnecessary casts.
      client/mysqlimport.c:
        Remove now-unnecessary casts.
      client/mysqlshow.c:
        Remove now-unnecessary casts.
      client/mysqlslap.c:
        Remove now-unnecessary casts.
      client/mysqltest.cc:
        Remove now-unnecessary casts.
      extra/comp_err.c:
        Remove now-unnecessary casts.
      extra/my_print_defaults.c:
        Remove now-unnecessary casts.
        Break up large strings.
      extra/mysql_waitpid.c:
        Remove now-unnecessary casts.
      extra/perror.c:
        Remove now-unnecessary casts.
      extra/resolve_stack_dump.c:
        Remove now-unnecessary casts.
      extra/resolveip.c:
        Remove now-unnecessary casts.
      include/my_getopt.h:
        Use a void pointer type as the opaque type to avoid problems with type
        incompatibility -- GCC issues warnings when the type name is not type
        compatible with a operand. As a side bonus, a explicit cast won't be
        necessary anymore.
      include/sslopt-longopts.h:
        Remove now-unnecessary casts.
        Break up large strings.
      mysys/my_getopt.c:
        Update opaque type and introduce a type definition for the
        argument to my_getopt_register_get_addr.
      server-tools/instance-manager/options.cc:
        Remove now-unnecessary casts.
      sql/mysqld.cc:
        Remove now-unnecessary casts.
        Break up large strings.
        Update mysql_getopt_value prototype (the old prototype
        was different from the definition anyway).
      sql/sql_plugin.cc:
        The type of a pointer to a function must be compatible with the
        pointed-to function type, otherwise the behavior is undefined.
      sql/table.cc:
        The variable buf pointer to pointer to pointer to constant char
        could improperly alias a incompatible type in call to fix_type_
        pointers. Since this was actually dead code, it is simply removed.
      sql/unireg.cc:
        Remove call to get_form_pos. The code creates a new FRM file which
        is always truncated and writes the form position as 0. Hence, no
        need to retrieve it, we now for sure it is 0.
      storage/archive/archive_reader.c:
        Remove now-unnecessary casts.
      storage/myisam/ft_nlq_search.c:
        Read weight directly from the buffer.
      storage/myisam/fulltext.h:
        Add explanation about the type duality of a key buffer.
        Add accessor macro to retrieve a FT float value.
      storage/myisam/mi_test1.c:
        Remove now-unnecessary casts.
      storage/myisam/myisam_ftdump.c:
        Read weight directly from the buffer.
      storage/myisam/myisamchk.c:
        Remove now-unnecessary casts.
      storage/myisam/myisamlog.c:
        A pointer to char was used to alias a pointer to pointer to
        unsigned char, thus violating strict aliasing rules.
      storage/myisam/myisampack.c:
        Remove now-unnecessary casts.
      strings/decimal.c:
        Remove aliasing violation, printing the value is enough for
        debugging purposes.
      tests/mysql_client_test.c:
        Remove now-unnecessary casts.
      486f9c05
    • Alexander Nozdrin's avatar
      Auto-merge from mysql-trunk-bugfixing. · 3122cbae
      Alexander Nozdrin authored
      3122cbae
    • Alexander Nozdrin's avatar
      Revert a patch for Bug#54334 (Double initialization of mysys mutexes). · dae2829b
      Alexander Nozdrin authored
      Revision ID of the patch: marc.alff@oracle.com-20100608124148-lr1ult7lwo75niev
      dae2829b