• unknown's avatar
    Fixes for bugs #2274 "mysqld gets SIGSEGV during processing of malformed · ef44fb9a
    unknown authored
    COM_EXECUTE packet" and #2795 "prepare + execute without bind_param crashes
     server" and #2473 "seg fault running tests/client_test.c": 
    - length checking added to packet parser 
    - default impelemntation of Item_param::set_param_func will work in
    case of malformed packet.
    No test cases are possible in our test suite, as there are no tests 
    operating on protocol layer.
    
    
    sql/item.cc:
      Default set_param function implemented: this is to not sigsegv in case
      of malformed packet with no parameters data.
    sql/item.h:
      - Item_param constructor moved to .cc to be able to assign set_param_func.
      - now embedded and ordinary versions of set_param have the same signature.
    sql/mysql_priv.h:
      mysql_stmt_execute now requires packet_length
    sql/sql_parse.cc:
      mysql_stmt_execute now requires packet length.
    sql/sql_prepare.cc:
      - length checking added to all functions working with network packet.
      - set_param_func's in embedded and ordinary version now have the same 
      signature
    ef44fb9a
item.h 31.8 KB