)]}'
{
  "log": [
    {
      "commit": "c50b6a2b89136b26a7f511a1a17e05b39f49dabd",
      "tree": "6a4a41a1dd913590f47b4035175557d1aa6f026c",
      "parents": [
        "e187d92062b3a384f8c4730f93aa6c36e1c74b52"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Mar 21 14:04:33 2019 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Mar 25 13:51:33 2019 -0700"
      },
      "message": "Make powerof2 macro ubsan safe\n\nSubtracting one from the smallest value expressable by the provided\nvariable could cause an underflow operation. In particular, this is\nproblematic when code similar to:\n\n  uint64_t foo \u003d 0;\n  if (powerof2(foo)) {\n    ...;\n  }\n\nis run with integer sanitization enabled. The macro would subtract one\nfrom zero, underflowing and triggering the sanitizer.\n\nMake the powerof2() macro ubsan safe, by explicitly handling underflows.\n\nNote: This change DOES NOT make powerof2() accurate. We continue to\nfalsely return \"true\" for 0 and negative numbers (see attached tests).\n\nFound while investigating Bug: 122975762\nTest: see added testcase\nTest: atest ziparchive-tests\n\nChange-Id: I5408ce5c18868d797bcae8f115ddb7c4c1ced81e\n"
    }
  ]
}
