)]}'
{
  "commit": "e6e5494cb23d1933735ee47cc674ffe1c4afed6f",
  "tree": "c8945bb3ae5bec38693d801fb589d22d48d6f8eb",
  "parents": [
    "d5fb34261dcd32c9cb3b28121fdc46308db513a1"
  ],
  "author": {
    "name": "Ingo Molnar",
    "email": "mingo@elte.hu",
    "time": "Tue Jun 27 02:53:50 2006 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@g5.osdl.org",
    "time": "Tue Jun 27 17:32:38 2006 -0700"
  },
  "message": "[PATCH] vdso: randomize the i386 vDSO by moving it into a vma\n\nMove the i386 VDSO down into a vma and thus randomize it.\n\nBesides the security implications, this feature also helps debuggers, which\ncan COW a vma-backed VDSO just like a normal DSO and can thus do\nsingle-stepping and other debugging features.\n\nIt\u0027s good for hypervisors (Xen, VMWare) too, which typically live in the same\nhigh-mapped address space as the VDSO, hence whenever the VDSO is used, they\nget lots of guest pagefaults and have to fix such guest accesses up - which\nslows things down instead of speeding things up (the primary purpose of the\nVDSO).\n\nThere\u0027s a new CONFIG_COMPAT_VDSO (default\u003dy) option, which provides support\nfor older glibcs that still rely on a prelinked high-mapped VDSO.  Newer\ndistributions (using glibc 2.3.3 or later) can turn this option off.  Turning\nit off is also recommended for security reasons: attackers cannot use the\npredictable high-mapped VDSO page as syscall trampoline anymore.\n\nThere is a new vdso\u003d[0|1] boot option as well, and a runtime\n/proc/sys/vm/vdso_enabled sysctl switch, that allows the VDSO to be turned\non/off.\n\n(This version of the VDSO-randomization patch also has working ELF\ncoredumping, the previous patch crashed in the coredumping code.)\n\nThis code is a combined work of the exec-shield VDSO randomization\ncode and Gerd Hoffmann\u0027s hypervisor-centric VDSO patch. Rusty Russell\nstarted this patch and i completed it.\n\n[akpm@osdl.org: cleanups]\n[akpm@osdl.org: compile fix]\n[akpm@osdl.org: compile fix 2]\n[akpm@osdl.org: compile fix 3]\n[akpm@osdl.org: revernt MAXMEM change]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\nCc: Gerd Hoffmann \u003ckraxel@suse.de\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Zachary Amsden \u003czach@vmware.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nCc: Jan Beulich \u003cjbeulich@novell.com\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": "2e352a605fcfef3a6dcb83d4c875635f9f89a71a",
      "old_mode": 33188,
      "old_path": "Documentation/kernel-parameters.txt",
      "new_id": "0d189c93eeaf94b283d22fd39d4dea8274d2d3cc",
      "new_mode": 33188,
      "new_path": "Documentation/kernel-parameters.txt"
    },
    {
      "type": "modify",
      "old_id": "6662f8c4479837d75bb9d9b7887d9adee47cf64a",
      "old_mode": 33188,
      "old_path": "arch/i386/Kconfig",
      "new_id": "3bb221db164a65c0425fdb5b01e299e331ccd99a",
      "new_mode": 33188,
      "new_path": "arch/i386/Kconfig"
    },
    {
      "type": "modify",
      "old_id": "1c3a809e64217292de3d4ab009b32d9953c0ee19",
      "old_mode": 33188,
      "old_path": "arch/i386/kernel/asm-offsets.c",
      "new_id": "c80271f8f084c04014d926185cbe896a86fe8d9e",
      "new_mode": 33188,
      "new_path": "arch/i386/kernel/asm-offsets.c"
    },
    {
      "type": "modify",
      "old_id": "e8d2630fd19a201973b2df04efc8cc4e9b059cec",
      "old_mode": 33188,
      "old_path": "arch/i386/kernel/entry.S",
      "new_id": "fbdb933251b643b8e726feefe8e350205dbd7396",
      "new_mode": 33188,
      "new_path": "arch/i386/kernel/entry.S"
    },
    {
      "type": "modify",
      "old_id": "5c352c3a9e7fa00492da1ff1c33a28ad0b5217c7",
      "old_mode": 33188,
      "old_path": "arch/i386/kernel/signal.c",
      "new_id": "43002cfb40c4e2811bf5006c9126fa2ff1cfdd46",
      "new_mode": 33188,
      "new_path": "arch/i386/kernel/signal.c"
    },
    {
      "type": "modify",
      "old_id": "0bada1870bdf5691631e10558bf43cbb350691a1",
      "old_mode": 33188,
      "old_path": "arch/i386/kernel/sysenter.c",
      "new_id": "c60419dee0180b7b19f94b2e40452c73ab54c493",
      "new_mode": 33188,
      "new_path": "arch/i386/kernel/sysenter.c"
    },
    {
      "type": "modify",
      "old_id": "3b62baa6a371def2c0ae3e426fbf2410f3fc83a2",
      "old_mode": 33188,
      "old_path": "arch/i386/kernel/vsyscall-sysenter.S",
      "new_id": "1a36d26e15eb0c6d370832ee166dd0fba3700f59",
      "new_mode": 33188,
      "new_path": "arch/i386/kernel/vsyscall-sysenter.S"
    },
    {
      "type": "modify",
      "old_id": "98699ca6e52d7b2febba30a086741a4f663da426",
      "old_mode": 33188,
      "old_path": "arch/i386/kernel/vsyscall.lds.S",
      "new_id": "e26975fc68b650105cbff7b0568ba7b856770085",
      "new_mode": 33188,
      "new_path": "arch/i386/kernel/vsyscall.lds.S"
    },
    {
      "type": "modify",
      "old_id": "0137ec4c1368888d906d6eb543a238e5dca18236",
      "old_mode": 33188,
      "old_path": "fs/proc/task_mmu.c",
      "new_id": "0a163a4f7764059f7401c8b43cae42ca9c2bef43",
      "new_mode": 33188,
      "new_path": "fs/proc/task_mmu.c"
    },
    {
      "type": "modify",
      "old_id": "4153d80e4d2b86535a6e55a6e72a30ba7b5b5699",
      "old_mode": 33188,
      "old_path": "include/asm-i386/elf.h",
      "new_id": "1eac92cb5b161744c463eec3ccd7d84395cc02f0",
      "new_mode": 33188,
      "new_path": "include/asm-i386/elf.h"
    },
    {
      "type": "modify",
      "old_id": "f7e068f4d2f98d7cdb8c5198cd26c1796bb3d9dc",
      "old_mode": 33188,
      "old_path": "include/asm-i386/fixmap.h",
      "new_id": "a48cc3f7ccc688a725595e46bb21c6e2fe7fb0ad",
      "new_mode": 33188,
      "new_path": "include/asm-i386/fixmap.h"
    },
    {
      "type": "modify",
      "old_id": "f431a0b86d4c46669e49b0fe4811a64017a27385",
      "old_mode": 33188,
      "old_path": "include/asm-i386/mmu.h",
      "new_id": "8358dd3df7aa22c1eb5bd4637f68b47b5509cd76",
      "new_mode": 33188,
      "new_path": "include/asm-i386/mmu.h"
    },
    {
      "type": "modify",
      "old_id": "e3a552fa5538744bd578d6351c8c23756774c782",
      "old_mode": 33188,
      "old_path": "include/asm-i386/page.h",
      "new_id": "f5bf544c729a373aa4ec1832aa9fa3cd55a13800",
      "new_mode": 33188,
      "new_path": "include/asm-i386/page.h"
    },
    {
      "type": "modify",
      "old_id": "ff1e2b1a7c849cbac9a93efffe82eae27a7c9626",
      "old_mode": 33188,
      "old_path": "include/asm-i386/thread_info.h",
      "new_id": "2833fa2c0dd0e6d5a54b5b6539123533f9c04855",
      "new_mode": 33188,
      "new_path": "include/asm-i386/thread_info.h"
    },
    {
      "type": "modify",
      "old_id": "d480f2e38215d69df898f89e11519f3c00b9dc85",
      "old_mode": 33188,
      "old_path": "include/asm-i386/unwind.h",
      "new_id": "69f0f1df67220edd0bc7bfe0b2148c6038b86e05",
      "new_mode": 33188,
      "new_path": "include/asm-i386/unwind.h"
    },
    {
      "type": "modify",
      "old_id": "a929ea197e4844da5d11fc9f43da506138b276f7",
      "old_mode": 33188,
      "old_path": "include/linux/mm.h",
      "new_id": "ff1fa87df8d07844bcec567eeb0731fb403caa98",
      "new_mode": 33188,
      "new_path": "include/linux/mm.h"
    },
    {
      "type": "modify",
      "old_id": "349ef908a2222d313ea7f87932a3a2d1d44b36b2",
      "old_mode": 33188,
      "old_path": "include/linux/sysctl.h",
      "new_id": "bee12a7a0576667f2bd395ad25c37a158d7842fe",
      "new_mode": 33188,
      "new_path": "include/linux/sysctl.h"
    },
    {
      "type": "modify",
      "old_id": "f1a4eb1a655e31a8a44800f5e6a8ecdd87065071",
      "old_mode": 33188,
      "old_path": "kernel/sysctl.c",
      "new_id": "f54afed8426f6309021c61f38dc2120041185a91",
      "new_mode": 33188,
      "new_path": "kernel/sysctl.c"
    }
  ]
}
