)]}'
{
  "commit": "214b7049a7929f03bbd2786aaef04b8b79db34e2",
  "tree": "2e2c688b96085664c4b7405859c359d51ae8305b",
  "parents": [
    "6d98ca736441029e4e87ad3b6dc4a8645dc4c6d3"
  ],
  "author": {
    "name": "Al Viro",
    "email": "viro@ZenIV.linux.org.uk",
    "time": "Thu May 01 03:52:22 2008 +0100"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Wed Apr 30 20:09:00 2008 -0700"
  },
  "message": "Fix dnotify/close race\n\nWe have a race between fcntl() and close() that can lead to\ndnotify_struct inserted into inode\u0027s list *after* the last descriptor\nhad been gone from current-\u003efiles.\n\nSince that\u0027s the only point where dnotify_struct gets evicted, we are\nscrewed - it will stick around indefinitely.  Even after struct file in\nquestion is gone and freed.  Worse, we can trigger send_sigio() on it at\nany later point, which allows to send an arbitrary signal to arbitrary\nprocess if we manage to apply enough memory pressure to get the page\nthat used to host that struct file and fill it with the right pattern...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "28d01ed66de0198130407a9d36411f77946cd1c7",
      "old_mode": 33188,
      "old_path": "fs/dnotify.c",
      "new_id": "eaecc4cfe5402584c6e3b9510628170c3be463bf",
      "new_mode": 33188,
      "new_path": "fs/dnotify.c"
    }
  ]
}
