Skip to content
  • Alexander Barkov's avatar
    608170ef
    Bug#14468106 READ OF FREED MEMORY WITH GROUP_CONCAT ON GEOMETRY VALUES · 608170ef
    Alexander Barkov authored
    Problem: Field_geom (which is a Field_blob child) did not use
    table->blob_storage - a memory helper storage previously added into Field_blob,
    to handle "GROUP_CONCAT with DISTINCT or ORDER BY" properly.
    
    Fix:
    - Moving table->blob_storage related code into a separate private
      method Field_blob::store_to_mem().
    
    - Moving Field_blob and Field_geom specific code into a new private
      virtual methods Field_blob::store_internal() and Field_geom::store_internal().
    
    - Rewriting Field_blob::store(), so now it shares the common code
      between Field_blob and Field_geom, to handle empty strings and
      table->blob_storage operations, and then calls the specific code
      from store_internal().
    
    - An additional helper protected  method Field_blob::store_ptr_and_length()
      was added, to avoid a few duplicate code pieces in Field_blob and
      Field_geom.
    608170ef
    Bug#14468106 READ OF FREED MEMORY WITH GROUP_CONCAT ON GEOMETRY VALUES
    Alexander Barkov authored
    Problem: Field_geom (which is a Field_blob child) did not use
    table->blob_storage - a memory helper storage previously added into Field_blob,
    to handle "GROUP_CONCAT with DISTINCT or ORDER BY" properly.
    
    Fix:
    - Moving table->blob_storage related code into a separate private
      method Field_blob::store_to_mem().
    
    - Moving Field_blob and Field_geom specific code into a new private
      virtual methods Field_blob::store_internal() and Field_geom::store_internal().
    
    - Rewriting Field_blob::store(), so now it shares the common code
      between Field_blob and Field_geom, to handle empty strings and
      table->blob_storage operations, and then calls the specific code
      from store_internal().
    
    - An additional helper protected  method Field_blob::store_ptr_and_length()
      was added, to avoid a few duplicate code pieces in Field_blob and
      Field_geom.
Loading