#####
# Test of explicit text format
$ govulncheck -C ${moddir}/informational -format text .
=== Symbol Results ===

No vulnerabilities found.

Your code is affected by 0 vulnerabilities.
This scan also found 1 vulnerability in packages you import and 0
vulnerabilities in modules you require, but your code doesn't appear to call
these vulnerabilities.
Use '-show verbose' for more details.

# Test of explicit json format
$ govulncheck -C ${moddir}/informational -format json .
{
  "config": {
    "protocol_version": "v1.0.0",
    "scanner_name": "govulncheck",
    "scanner_version": "v0.0.0-00000000000-20000101010101",
    "db": "testdata/vulndb-v1",
    "db_last_modified": "2023-04-03T15:57:51Z",
    "go_version": "go1.18",
    "scan_level": "symbol",
    "scan_mode": "source"
  }
}
{
  "progress": {
    "message": "Fetching vulnerabilities from the database..."
  }
}
{
  "progress": {
    "message": "Checking the code against the vulnerabilities..."
  }
}
{
  "osv": {
    "schema_version": "1.3.1",
    "id": "GO-2021-0265",
    "modified": "2023-04-03T15:57:51Z",
    "published": "2022-08-15T18:06:07Z",
    "aliases": [
      "CVE-2021-42248",
      "CVE-2021-42836",
      "GHSA-c9gm-7rfj-8w5h",
      "GHSA-ppj4-34rq-v8j9"
    ],
    "details": "A maliciously crafted path can cause Get and other query functions to consume excessive amounts of CPU and time.",
    "affected": [
      {
        "package": {
          "name": "github.com/tidwall/gjson",
          "ecosystem": "Go"
        },
        "ranges": [
          {
            "type": "SEMVER",
            "events": [
              {
                "introduced": "0"
              },
              {
                "fixed": "1.9.3"
              }
            ]
          }
        ],
        "ecosystem_specific": {
          "imports": [
            {
              "path": "github.com/tidwall/gjson",
              "symbols": [
                "Get",
                "GetBytes",
                "GetMany",
                "GetManyBytes",
                "Result.Get",
                "parseObject",
                "queryMatches"
              ]
            }
          ]
        }
      }
    ],
    "references": [
      {
        "type": "FIX",
        "url": "https://github.com/tidwall/gjson/commit/77a57fda87dca6d0d7d4627d512a630f89a91c96"
      },
      {
        "type": "WEB",
        "url": "https://github.com/tidwall/gjson/issues/237"
      },
      {
        "type": "WEB",
        "url": "https://github.com/tidwall/gjson/issues/236"
      },
      {
        "type": "WEB",
        "url": "https://github.com/tidwall/gjson/commit/590010fdac311cc8990ef5c97448d4fec8f29944"
      }
    ],
    "database_specific": {
      "url": "https://pkg.go.dev/vuln/GO-2021-0265"
    }
  }
}
{
  "finding": {
    "osv": "GO-2021-0265",
    "fixed_version": "v1.9.3",
    "trace": [
      {
        "module": "github.com/tidwall/gjson",
        "version": "v1.9.2"
      }
    ]
  }
}
{
  "finding": {
    "osv": "GO-2021-0265",
    "fixed_version": "v1.9.3",
    "trace": [
      {
        "module": "github.com/tidwall/gjson",
        "version": "v1.9.2",
        "package": "github.com/tidwall/gjson"
      }
    ]
  }
}
{
  "osv": {
    "schema_version": "1.3.1",
    "id": "GO-2021-0054",
    "modified": "2023-04-03T15:57:51Z",
    "published": "2021-04-14T20:04:52Z",
    "aliases": [
      "CVE-2020-36067",
      "GHSA-p64j-r5f4-pwwx"
    ],
    "details": "Due to improper bounds checking, maliciously crafted JSON objects can cause an out-of-bounds panic. If parsing user input, this may be used as a denial of service vector.",
    "affected": [
      {
        "package": {
          "name": "github.com/tidwall/gjson",
          "ecosystem": "Go"
        },
        "ranges": [
          {
            "type": "SEMVER",
            "events": [
              {
                "introduced": "0"
              },
              {
                "fixed": "1.6.6"
              }
            ]
          }
        ],
        "ecosystem_specific": {
          "imports": [
            {
              "path": "github.com/tidwall/gjson",
              "symbols": [
                "Result.ForEach",
                "unwrap"
              ]
            }
          ]
        }
      }
    ],
    "references": [
      {
        "type": "FIX",
        "url": "https://github.com/tidwall/gjson/commit/bf4efcb3c18d1825b2988603dea5909140a5302b"
      },
      {
        "type": "WEB",
        "url": "https://github.com/tidwall/gjson/issues/196"
      }
    ],
    "credits": [
      {
        "name": "@toptotu"
      }
    ],
    "database_specific": {
      "url": "https://pkg.go.dev/vuln/GO-2021-0054"
    }
  }
}
{
  "osv": {
    "schema_version": "1.3.1",
    "id": "GO-2021-0059",
    "modified": "2023-04-03T15:57:51Z",
    "published": "2021-04-14T20:04:52Z",
    "aliases": [
      "CVE-2020-35380",
      "GHSA-w942-gw6m-p62c"
    ],
    "details": "Due to improper bounds checking, maliciously crafted JSON objects can cause an out-of-bounds panic. If parsing user input, this may be used as a denial of service vector.",
    "affected": [
      {
        "package": {
          "name": "github.com/tidwall/gjson",
          "ecosystem": "Go"
        },
        "ranges": [
          {
            "type": "SEMVER",
            "events": [
              {
                "introduced": "0"
              },
              {
                "fixed": "1.6.4"
              }
            ]
          }
        ],
        "ecosystem_specific": {
          "imports": [
            {
              "path": "github.com/tidwall/gjson",
              "symbols": [
                "Get",
                "GetBytes",
                "GetMany",
                "GetManyBytes",
                "Result.Array",
                "Result.Get",
                "Result.Map",
                "Result.Value",
                "squash"
              ]
            }
          ]
        }
      }
    ],
    "references": [
      {
        "type": "FIX",
        "url": "https://github.com/tidwall/gjson/commit/f0ee9ebde4b619767ae4ac03e8e42addb530f6bc"
      },
      {
        "type": "WEB",
        "url": "https://github.com/tidwall/gjson/issues/192"
      }
    ],
    "credits": [
      {
        "name": "@toptotu"
      }
    ],
    "database_specific": {
      "url": "https://pkg.go.dev/vuln/GO-2021-0059"
    }
  }
}
