• unknown's avatar
    bug #16017 (memory leaks in embedded server) · eadcf200
    unknown authored
    There actually was 3 different problems -
    hash_user_connections wasn't cleaned
    one strdupped database name wasn't freed
    and stmt->mem_root wasn't cleaned as it was
    replased with mysql->field_alloc for result
    For the last one - i made the library using stmt's
    fields to store result if it's the case.
    
    
    include/mysql.h:
      statement pointer added to the advanced_command to be checked in
      embedded server
    include/sql_common.h:
      stmt added to the cli_advanced_command interface
    libmysql/libmysql.c:
      stmt pointer now sent to advanced_command
    libmysqld/embedded_priv.h:
      it's enough to send database name to check_embedded_connection
    libmysqld/lib_sql.cc:
      Now we store result directly in the MYSQL_STMT structure to
      avoid extra copying
    libmysqld/libmysqld.c:
      it's enough to only send database pointer to check_embedded_connection
    sql-common/client.c:
      stmt fake attribute added to cli_advanced_command
    sql/sql_parse.cc:
      hash_user_connections isn't used if no access checks compiled
    eadcf200
libmysql.c 128 KB