)]}'
{
  "commit": "fa0be3c922ce6aa32dd7da11134fc2b94a746fe6",
  "tree": "5ceb156ed426f8a4f4a90be1736000268c8ed8b4",
  "parents": [
    "79198263e1989bf0916e3aa51a253d8b4c08a396"
  ],
  "author": {
    "name": "Andy Lutomirski",
    "email": "luto@amacapital.net",
    "time": "Mon Apr 21 09:07:25 2014 -0700"
  },
  "committer": {
    "name": "Andy Lutomirski",
    "email": "luto@amacapital.net",
    "time": "Mon Apr 21 09:07:25 2014 -0700"
  },
  "message": "fs,proc: Respect FMODE_WRITE when opening /proc/pid/fd/N\n\nThis patch does this:\n\n    # (echo asdf \u003e/proc/self/fd/3) 3\u003c/dev/null\n    bash: /proc/self/fd/3: Permission denied\n\nI\u0027m not confident that my use of nd-\u003eflags is correct.  I\u0027m also not\nconfident that this hooks in to path lookup in the right place.\n\nIt is not complete.  It doesn\u0027t handle FMODE_READ.  It also doesn\u0027t\nhandle FMODE_EXEC or FMODE_PATH, but the desired semantics there are\nless clear.  For example, this should probably continue to work:\n\n    (/proc/self/fd/3 Hello) 3\u003c/bin/echo\n\nThis patch does not do anything to /proc/self/exe.  It probably should.\n\nThis may break userspace.  If so, I would argue that anything broken\nby it is either an actual exploit or is so broken that it doesn\u0027t\ndeserve to continue working.  If it breaks something important, then\nmaybe it will need a sysctl.\n\nSigned-off-by: Andy Lutomirski \u003cluto@amacapital.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c6157c894fce234c333d5a2d787f81ee3e5e7ba9",
      "old_mode": 33188,
      "old_path": "fs/namei.c",
      "new_id": "3f0183668684c0ead3c3ece2575dab69507f401b",
      "new_mode": 33188,
      "new_path": "fs/namei.c"
    },
    {
      "type": "modify",
      "old_id": "deca407f7da34e417a496daf87ba4ee24e27732b",
      "old_mode": 33188,
      "old_path": "fs/proc/fd.c",
      "new_id": "ab3373c2a85d5971f7047d89c51c79a7c477d126",
      "new_mode": 33188,
      "new_path": "fs/proc/fd.c"
    },
    {
      "type": "modify",
      "old_id": "492de72560fab98591ca7ca617380b7d581e5c13",
      "old_mode": 33188,
      "old_path": "include/linux/namei.h",
      "new_id": "50772013f8b8102542af649accaf34ccfbd60998",
      "new_mode": 33188,
      "new_path": "include/linux/namei.h"
    }
  ]
}
