1. 21 Dec, 2018 8 commits
  2. 20 Dec, 2018 15 commits
  3. 19 Dec, 2018 3 commits
    • Marko Mäkelä's avatar
      Merge 10.1 into 10.2 · 610e4034
      Marko Mäkelä authored
      610e4034
    • Marko Mäkelä's avatar
      MDEV-18025: Improve test case and consistency checks · dd72d7d5
      Marko Mäkelä authored
      Write a test case that computes valid crc32 checksums for
      an encrypted page, but zeroes out the payload area, so
      that the checksum after decryption fails.
      
      xb_fil_cur_read(): Validate the page number before trying
      any checksum calculation or decrypting or decompression.
      Also, skip zero-filled pages. For page_compressed pages,
      ensure that the FIL_PAGE_TYPE was changed. Also, reject
      FIL_PAGE_PAGE_COMPRESSED_ENCRYPTED if no decryption was attempted.
      dd72d7d5
    • Varun Gupta's avatar
      MDEV-15424: Unreasonable SQL Error (1356) on select from view · 82a4d55d
      Varun Gupta authored
      While printing a view containing a window function we were printing it as an
      Item_field object instead of an Item_window_func object. This is incorrect and this
      leads to us throwing an error ER_VIEW_INVALID.
      Fixed by adjusting the Item_ref:print function.
      Also made UDF function aware if there arguments have window function.
      82a4d55d
  4. 18 Dec, 2018 8 commits
  5. 17 Dec, 2018 6 commits
    • Marko Mäkelä's avatar
      MDEV-12112: Support WITH_INNODB_BUG_ENDIAN_CRC32 · ed13a0d2
      Marko Mäkelä authored
      fil_space_verify_crypt_checksum(): Compute the bug-compatible variant
      of the CRC-32C checksum if the correct one does not match.
      ed13a0d2
    • Marko Mäkelä's avatar
      Merge 10.1 into 10.2 · fae7e350
      Marko Mäkelä authored
      fae7e350
    • Marko Mäkelä's avatar
      Fix a compiler warning · 51a1fc73
      Marko Mäkelä authored
      fil_space_verify_crypt_checksum(): Add a dummy return statement
      in case memory is corrupted and innodb_checksum_algorithm has
      an invalid value.
      51a1fc73
    • Marko Mäkelä's avatar
      Merge 10.1 into 10.2 · 7d245083
      Marko Mäkelä authored
      7d245083
    • Marko Mäkelä's avatar
      Follow-up to MDEV-12112: corruption in encrypted table may be overlooked · 8c43f963
      Marko Mäkelä authored
      The initial fix only covered a part of Mariabackup.
      This fix hardens InnoDB and XtraDB in a similar way, in order
      to reduce the probability of mistaking a corrupted encrypted page
      for a valid unencrypted one.
      
      This is based on work by Thirunarayanan Balathandayuthapani.
      
      fil_space_verify_crypt_checksum(): Assert that key_version!=0.
      Let the callers guarantee that. Now that we have this assertion,
      we also know that buf_page_is_zeroes() cannot hold.
      Also, remove all diagnostic output and related parameters,
      and let the relevant callers emit such messages.
      Last but not least, validate the post-encryption checksum
      according to the innodb_checksum_algorithm (only accepting
      one checksum for the strict variants), and no longer
      try to validate the page as if it was unencrypted.
      
      buf_page_is_zeroes(): Move to the compilation unit of the only callers,
      and declare static.
      
      xb_fil_cur_read(), buf_page_check_corrupt(): Add a condition before
      calling fil_space_verify_crypt_checksum(). This is a non-functional
      change.
      
      buf_dblwr_process(): Validate the page only as encrypted or unencrypted,
      but not both.
      8c43f963
    • Marko Mäkelä's avatar
      Fix USE_AFTER_FREE (CWE-416) · 10e01b56
      Marko Mäkelä authored
      A static analysis tool suggested that in the function
      row_merge_read_clustered_index(), ut_free(nonnull) could
      be invoked twice for nonnull!=NULL. While a manual review
      of the code disproved this, it should not hurt to clean up
      the code so that the static analysis tool will not complain.
      
      index_tuple_info_t::insert(), row_mtuple_cmp(): Remove the
      parameter mtr_committed, which duplicated !mtr->is_active().
      
      row_merge_read_clustered_index(): Initialize row_heap = NULL.
      Remove a duplicated call mem_heap_empty(row_heap) that was
      inadvertently added in commit cb1e76e4.
      
      Replace a "goto func_exit" with "break", to get consistent error
      handling for both failures to create or write a temporary file.
      
      end_of_index: Assign row_heap=NULL and nonnull=NULL to prevent
      double freeing.
      
      func_exit: Check for row_heap!=NULL before invoking mem_heap_free().
      
      Closes #959
      10e01b56