)]}'
{
  "commit": "ee6bef89ffdbd448ffdc98db1edd2e5bd6c1ef14",
  "tree": "345f289bdd42f916d98a76a733878de4b4a9cfae",
  "parents": [
    "3ee608864c6c2d5c76b6ae48b30673b2870e717a"
  ],
  "author": {
    "name": "Barret Rhoden",
    "email": "brho@cs.berkeley.edu",
    "time": "Mon Apr 08 19:30:19 2019 -0400"
  },
  "committer": {
    "name": "Barret Rhoden",
    "email": "brho@cs.berkeley.edu",
    "time": "Mon Apr 08 19:30:19 2019 -0400"
  },
  "message": "mm: fix checks for PROT_NONE\n\nYou gotta love PROT_NONE, O_RDONLY, and any of these flags whose value\nis zero.\n\nThe old code assumed that the only options for \u0027prot\u0027 were mutually\nexclusive with PROT_NONE, such that we could check prot \u003d\u003d PROT_NONE\nwhen we really meant \"has no access\".  We checked for equality, since we\ncan\u0027t do (prot \u0026 PROT_NONE), since PROT_NONE \u003d\u003d 0.\n\nHowever, checking prot \u003d\u003d PROT_NONE is wrong: we have other flags, like\nPROT_GROWSDOWN.  Arguably, we shouldn\u0027t use those flags - I\u0027ll remove\nthem shortly.  Regardless, using a helper cleans up the code.\n\nReported-by: syzbot+aafc3433b89c900f8fe1@syzkaller.appspotmail.com\nSigned-off-by: Barret Rhoden \u003cbrho@cs.berkeley.edu\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "7bc6ca92febbfa2d4f0e11508f9e13b118ea3c92",
      "old_mode": 33188,
      "old_path": "kern/src/mm.c",
      "new_id": "5dfb85e1f1767f9d515f11c7e434f04fa628042f",
      "new_mode": 33188,
      "new_path": "kern/src/mm.c"
    }
  ]
}
