1. 28 Nov, 2006 2 commits
    • istruewing@chilla.local's avatar
      Merge chilla.local:/home/mydev/mysql-4.1-bug23139 · 3b41ef6a
      istruewing@chilla.local authored
      into  chilla.local:/home/mydev/mysql-5.0-bug23139
      3b41ef6a
    • istruewing@chilla.local's avatar
      Bug#23139 - myisamchk and mysqld crash when trying to access table · 67157521
      istruewing@chilla.local authored
      A corrupted compressed table could crash the server and
      myisamchk.
      
      The data file of an uncompressed table contains just the records.
      There is no header in the data file.
      
      However the data file of a compressed table has a header.
      The header describes how the table was compressed. This
      information is necessary to extract the records from the
      compressed data file.
      
      Part of the compressed data file header are the [de]code tables.
      They are numeric representations of the Huffman trees used for
      coding and decoding. A Huffman tree is a binary tree. Every
      node has two childs. A child can be a leaf or a branch. Leaves
      contain the decoded value. Branches point to another tree node.
      
      Since the [de]code table is represented as an array of childs,
      the branches need to point at a child within the same array.
      The corruption of the compressed data file from the bug report
      was a couple of branches that pointed outside their array.
      This condition had not been correctly checked.
      
      I added some checks for the pointers in the decode tables.
      This type of corruption will no longer crash the server or
      myisamchk.
      
      No test case. A corrupted compressed table is required.
      67157521
  2. 07 Nov, 2006 2 commits
  3. 01 Nov, 2006 1 commit
  4. 27 Oct, 2006 4 commits
  5. 26 Oct, 2006 1 commit
  6. 25 Oct, 2006 5 commits
  7. 24 Oct, 2006 1 commit
  8. 21 Oct, 2006 1 commit
  9. 20 Oct, 2006 7 commits
  10. 19 Oct, 2006 12 commits
  11. 18 Oct, 2006 2 commits
  12. 17 Oct, 2006 2 commits