)]}'
{
  "commit": "84929801e14d968caeb84795bfbb88f04283fbd9",
  "tree": "248fa9fd6cfb411a6df3b7f7fb42aa4f9ceca2bf",
  "parents": [
    "589777eab7360894b7ca1c4ba9d252e03b51225b"
  ],
  "author": {
    "name": "Suresh Siddha",
    "email": "suresh.b.siddha@intel.com",
    "time": "Tue Jun 21 17:14:32 2005 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@ppc970.osdl.org",
    "time": "Tue Jun 21 18:46:12 2005 -0700"
  },
  "message": "[PATCH] x86_64: TASK_SIZE fixes for compatibility mode processes\n\nAppended patch will setup compatibility mode TASK_SIZE properly.  This will\nfix atleast three known bugs that can be encountered while running\ncompatibility mode apps.\n\na) A malicious 32bit app can have an elf section at 0xffffe000.  During\n   exec of this app, we will have a memory leak as insert_vm_struct() is\n   not checking for return value in syscall32_setup_pages() and thus not\n   freeing the vma allocated for the vsyscall page.  And instead of exec\n   failing (as it has addresses \u003e TASK_SIZE), we were allowing it to\n   succeed previously.\n\nb) With a 32bit app, hugetlb_get_unmapped_area/arch_get_unmapped_area\n   may return addresses beyond 32bits, ultimately causing corruption\n   because of wrap-around and resulting in SEGFAULT, instead of returning\n   ENOMEM.\n\nc) 32bit app doing this below mmap will now fail.\n\n  mmap((void *)(0xFFFFE000UL), 0x10000UL, PROT_READ|PROT_WRITE,\n\tMAP_FIXED|MAP_PRIVATE|MAP_ANON, 0, 0);\n\nSigned-off-by: Zou Nan hai \u003cnanhai.zou@intel.com\u003e\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "99b522052d16d9cae2f3c07f11afd9c3cdfb59e9",
      "old_mode": 33188,
      "old_path": "arch/x86_64/ia32/ia32_binfmt.c",
      "new_id": "c8131f342cfc6de02b41e447b66bdaaee5e83b5b",
      "new_mode": 33188,
      "new_path": "arch/x86_64/ia32/ia32_binfmt.c"
    },
    {
      "type": "modify",
      "old_id": "761b6d35e338d05e44d2e325808af9b20d81d25e",
      "old_mode": 33188,
      "old_path": "arch/x86_64/kernel/process.c",
      "new_id": "dce8bab4306cdc3c73abd6ef91529040487360fb",
      "new_mode": 33188,
      "new_path": "arch/x86_64/kernel/process.c"
    },
    {
      "type": "modify",
      "old_id": "525f6a128a279c0f559392af0b962de4101e46e8",
      "old_mode": 33188,
      "old_path": "arch/x86_64/kernel/ptrace.c",
      "new_id": "bbf64b59a21e217b64085f7ce378d7fa332a4bab",
      "new_mode": 33188,
      "new_path": "arch/x86_64/kernel/ptrace.c"
    },
    {
      "type": "modify",
      "old_id": "dbebd5ccba6b067531c0f7425d2bd17ef08c2bfd",
      "old_mode": 33188,
      "old_path": "arch/x86_64/kernel/sys_x86_64.c",
      "new_id": "d9798dd433fca68d01f37d055df1374d28ff1353",
      "new_mode": 33188,
      "new_path": "arch/x86_64/kernel/sys_x86_64.c"
    },
    {
      "type": "modify",
      "old_id": "5d6b2114cc9a4e5d30b9736a339dad5bc03839fc",
      "old_mode": 33188,
      "old_path": "arch/x86_64/mm/fault.c",
      "new_id": "57d3ab15a5c737aeda66c83ed6756cae3c9924e5",
      "new_mode": 33188,
      "new_path": "arch/x86_64/mm/fault.c"
    },
    {
      "type": "modify",
      "old_id": "5952914f4121008f1ff78d86e248d938cd1a4c3d",
      "old_mode": 33188,
      "old_path": "include/asm-x86_64/a.out.h",
      "new_id": "7255cde065384d9508507c88ac522fedfc9d36b2",
      "new_mode": 33188,
      "new_path": "include/asm-x86_64/a.out.h"
    },
    {
      "type": "modify",
      "old_id": "d641b19f6da5d7aa9324ffcc17b1b24d023806b3",
      "old_mode": 33188,
      "old_path": "include/asm-x86_64/processor.h",
      "new_id": "8b55f139968fc3bd730502eb800182ea95ef139d",
      "new_mode": 33188,
      "new_path": "include/asm-x86_64/processor.h"
    }
  ]
}
