• Marko Mäkelä's avatar
    MDEV-16982 Server crashes in mem_heap_dup upon DELETE from table with virtual columns · 625994b7
    Marko Mäkelä authored
    An uninitialized buffer is passed to row_sel_store_mysql_rec() but
    InnoDB may not initialize everything. Looks like it's ok in most cases
    but not always.
    The partially initialized buffer was later passed to
    ha_innobase::write_row() which reads random NULL bit values for
    virtual columns and random stuff happens.
    
    No test case for MariaDB 10.2 was found.
    The test case for MariaDB 10.3 involves partitioning,
    system versioning and the TRASH_ALLOC fill pattern 0xA5.
    Test case depends very much on the number and layout of columns.
    Think about 0xA5 byte for a NULL bit mask.
    
    row_sel_store_mysql_rec(): always initialize virtual columns NULL bit
    
    Closes #1144
    625994b7
row0sel.cc 163 KB