Uploaded image for project: 'Go Driver'
  1. Go Driver
  2. GODRIVER-1417

Add fuzzer tests to the BSON package(s)

    • Type: Icon: Epic Epic
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • 1.11.0
    • Affects Version/s: None
    • Component/s: Testing
    • None
    • Hide
      1. What would you like to communicate to the user about this feature?
      2. Would you like the user to see examples of the syntax and/or executable code and its output?
      3. Which versions of the driver/connector does this apply to?
      Show
      1. What would you like to communicate to the user about this feature? 2. Would you like the user to see examples of the syntax and/or executable code and its output? 3. Which versions of the driver/connector does this apply to?
    • Done
    • Add fuzzer tests to BSON packages
    • Fully Compatible

      Epic Summary

      Summary

      There have been a few cases already of cases where the BSON code used by the driver is a little too happy-path oriented. Invalid BSON or documents seem to have a high chance of triggering panics or otherwise erroneous behavior.

      Me and divjot.arora at some point investigated some issues in the BSON code for handling invalid documents that were sent by another user's fuzz testing of a library using the driver. And craig.wilson@mongodb.com has found a case where a negative length causes a panic in validation code.

      In general, it seems like what we need is a fuzzer to more systematically find all of these edge cases and increase the robustness of the BSON package.

      Implementing a fuzzer for BSON should (who knows, really) be easy to write for BSON, since it is just a lump of bytes.

      Documentation

      [Scope Document|]
      [Technical Design Document|]

            Assignee:
            Unassigned Unassigned
            Reporter:
            may.hoque@mongodb.com May Hoque
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: