Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-86427

Decide on decompression behavior if there are deltas without an uncompressed control byte

    • Type: Icon: Improvement Improvement
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 8.0.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • Labels:
      None
    • Storage Execution
    • Fully Compatible
    • QI 2024-02-19, QI 2024-03-04
    • 148

      SERVER-85343 updated libfuzzer restrictions, and now we are seeing an error that crashes the bson_column_validate_fuzzer. The bad input contains only deltas without a control uncompressed element before the deltas. This will pass validation but when we try and decompress the column we will enter this conditional without initializing the member variables of the struct, so deltaOfDelta will be any value in memory and not a boolean. However, this won't crash the server or lead to memory issues. If deltaOfDelta is true (any value that is not 0) the decoding loop will enter the materializer which will throw an error (invalid BSON encoding). If deltaOfDelta is false at this time, we will return the lastValue and return missing. But we should decide on the behavior we want. This is also necessary for the fuzzers to pass.

            Assignee:
            gil.alon@mongodb.com Gil Alon
            Reporter:
            gil.alon@mongodb.com Gil Alon
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

              Created:
              Updated:
              Resolved: