)]}'
{
  "commit": "c73bd6d473ceb5d643d3afd7e75b7dc2e6918558",
  "tree": "76a800f3080d000215ec74f4c66fc73560b83a8f",
  "parents": [
    "f9ce1f1cda8b73a36f47e424975a9dfa78b7840c"
  ],
  "author": {
    "name": "Kentaro Takeda",
    "email": "takedakn@nttdata.co.jp",
    "time": "Thu Feb 05 17:18:12 2009 +0900"
  },
  "committer": {
    "name": "James Morris",
    "email": "jmorris@namei.org",
    "time": "Thu Feb 12 15:15:04 2009 +1100"
  },
  "message": "Memory and pathname management functions.\n\nTOMOYO Linux performs pathname based access control.\nTo remove factors that make pathname based access control difficult\n(e.g. symbolic links, \"..\", \"//\" etc.), TOMOYO Linux derives realpath\nof requested pathname from \"struct dentry\" and \"struct vfsmount\".\n\nThe maximum length of string data is limited to 4000 including trailing \u0027\\0\u0027.\nSince TOMOYO Linux uses \u0027\\ooo\u0027 style representation for non ASCII printable\ncharacters, maybe TOMOYO Linux should be able to support 16336 (which means\n(NAME_MAX * (PATH_MAX / (NAME_MAX + 1)) * 4 + (PATH_MAX / (NAME_MAX + 1)))\nincluding trailing \u0027\\0\u0027), but I think 4000 is enough for practical use.\n\nTOMOYO uses only 0x21 - 0x7E (as printable characters) and 0x20 (as word\ndelimiter) and 0x0A (as line delimiter).\n0x01 - 0x20 and 0x80 - 0xFF is handled in \\ooo style representation.\nThe reason to use \\ooo is to guarantee that \"%s\" won\u0027t damage logs.\nUserland program can request\n\n open(\"/tmp/file granted.\\nAccess /tmp/file \", O_WRONLY | O_CREAT, 0600)\n\nand logging such crazy pathname using \"Access %s denied.\\n\" format will cause\n\"fabrication of logs\" like\n\n Access /tmp/file granted.\n Access /tmp/file denied.\n\nTOMOYO converts such characters to \\ooo so that the logs will become\n\n Access /tmp/file\\040granted.\\012Access\\040/tmp/file denied.\n\nand the administrator can read the logs safely using /bin/cat .\nLikewise, a crazy request like\n\n open(\"/tmp/\\x01\\x02\\x03\\x04\\x05\\x06\\x07\\x08\\x09\", O_WRONLY | O_CREAT, 0600)\n\nwill be processed safely by converting to\n\n Access /tmp/\\001\\002\\003\\004\\005\\006\\007\\010\\011 denied.\n\nSigned-off-by: Kentaro Takeda \u003ctakedakn@nttdata.co.jp\u003e\nSigned-off-by: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nSigned-off-by: Toshiharu Harada \u003charadats@nttdata.co.jp\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5fd48d23a2177c05658045a504503acd14ebbc0f",
      "new_mode": 33188,
      "new_path": "security/tomoyo/realpath.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0ea541fcb53cff21e017056c7b471ecb471923cf",
      "new_mode": 33188,
      "new_path": "security/tomoyo/realpath.h"
    }
  ]
}
