)]}'
{
  "log": [
    {
      "commit": "485d527686850d68a0e9006dd9904f19f122485e",
      "tree": "8400c646135bb4ce68f137004298e1be7fdbd913",
      "parents": [
        "d6d03f9158516b50d0d343158e3f33bcff1e4ca5"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Jun 04 14:14:58 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 04 15:21:45 2010 -0700"
      },
      "message": "sys_personality: change sys_personality() to accept \"unsigned int\" instead of u_long\n\ntask_struct-\u003epesonality is \"unsigned int\", but sys_personality() paths use\n\"unsigned long pesonality\".  This means that every assignment or\ncomparison is not right.  In particular, if this argument does not fit\ninto \"unsigned int\" __set_personality() changes the caller\u0027s personality\nand then sys_personality() returns -EINVAL.\n\nTurn this argument into \"unsigned int\" and avoid overflows.  Obviously,\nthis is the user-visible change, we just ignore the upper bits.  But this\ncan\u0027t break the sane application.\n\nThere is another thing which can confuse the poorly written applications.\nUser-space thinks that this syscall returns int, not long.  This means\nthat the returned value can be negative and look like the error code.  But\nnote that libc won\u0027t be confused and thus errno won\u0027t be set, and with\nthis patch the user-space can never get -1 unless sys_personality() really\nfails.  And, most importantly, the negative RET !\u003d -1 is only possible if\nthat app previously called personality(RET).\n\nPointed-out-by: Wenming Zhang \u003cwezhang@redhat.com\u003e\nSuggested-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f9fabcb58a6d26d6efde842d1703ac7cfa9427b6",
      "tree": "3bab868d1db85521932b77897983e7c673f7a669",
      "parents": [
        "a137802ee839ace40079bebde24cfb416f73208a"
      ],
      "author": {
        "name": "Julien Tinnes",
        "email": "jt@cr0.org",
        "time": "Fri Jun 26 20:27:40 2009 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 12 12:21:33 2009 -0700"
      },
      "message": "personality: fix PER_CLEAR_ON_SETID\n\nWe have found that the current PER_CLEAR_ON_SETID mask on Linux doesn\u0027t\ninclude neither ADDR_COMPAT_LAYOUT, nor MMAP_PAGE_ZERO.\n\nThe current mask is READ_IMPLIES_EXEC|ADDR_NO_RANDOMIZE.\n\nWe believe it is important to add MMAP_PAGE_ZERO, because by using this\npersonality it is possible to have the first page mapped inside a\nprocess running as setuid root.  This could be used in those scenarios:\n\n - Exploiting a NULL pointer dereference issue in a setuid root binary\n - Bypassing the mmap_min_addr restrictions of the Linux kernel: by\n   running a setuid binary that would drop privileges before giving us\n   control back (for instance by loading a user-supplied library), we\n   could get the first page mapped in a process we control.  By further\n   using mremap and mprotect on this mapping, we can then completely\n   bypass the mmap_min_addr restrictions.\n\nLess importantly, we believe ADDR_COMPAT_LAYOUT should also be added\nsince on x86 32bits it will in practice disable most of the address\nspace layout randomization (only the stack will remain randomized).\n\nSigned-off-by: Julien Tinnes \u003cjt@cr0.org\u003e\nSigned-off-by: Tavis Ormandy \u003ctaviso@sdf.lonestar.org\u003e\nCc: stable@kernel.org\nAcked-by: Christoph Hellwig \u003chch@infradead.org\u003e\nAcked-by: Kees Cook \u003ckees@ubuntu.com\u003e\nAcked-by: Eugene Teo \u003ceugene@redhat.com\u003e\n[ Shortened lines and fixed whitespace as per Christophs\u0027 suggestion ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ecd0fa9825a1270e31fb48bc9edcfb28918b6c51",
      "tree": "249577a09b7028f75264c31673ab4999e2a92cda",
      "parents": [
        "6e5e8c5085190b30b6fa42a4b75a88c10846b5f2"
      ],
      "author": {
        "name": "WANG Cong",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Tue Apr 29 00:59:15 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:02 2008 -0700"
      },
      "message": "Remove the macro get_personality\n\nRemove the macro get_personality, use -\u003epersonality instead.\n\nCc: Christoph Hellwig \u003chch@infradead.org\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Bryan Wu \u003cbryan.wu@analog.com\u003e\nSigned-off-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d8b295f29091310d746509bb6d5828aaf4907a18",
      "tree": "db49c0b071d744e7687723c5ae45cf1b02640b97",
      "parents": [
        "e40c67597eac7a0b0e676867517b01a5a57f7b4b"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk+lkml@arm.linux.org.uk",
        "time": "Fri Nov 10 12:27:53 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 13 07:40:42 2006 -0800"
      },
      "message": "[PATCH] Fix missing parens in set_personality()\n\nIf you call set_personality() with an expression such as:\n\n\tset_personality(foo ? PERS_FOO1 : PERS_FOO2);\n\nthen this evaluates to:\n\n\t((current-\u003epersonality \u003d\u003d foo ? PERS_FOO1 : PERS_FOO2) ? ...\n\nwhich is obviously not the intended result.  Add the missing parents\nto ensure this gets evaluated as expected:\n\n\t((current-\u003epersonality \u003d\u003d (foo ? PERS_FOO1 : PERS_FOO2)) ? ...\n\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "34e856e6a522a8fc0feba7497f5b05aeaa13d473",
      "tree": "a6b0199f4f7a2e36ca4a8ff851b93b633344eea1",
      "parents": [
        "3fcfab16c5b86eaa3db3a9a31adba550c5b67141"
      ],
      "author": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Thu Oct 19 23:28:17 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Oct 20 10:26:35 2006 -0700"
      },
      "message": "[PATCH] Make \u003clinux/personality.h\u003e userspace proof\n\n\u003clinux/personality.h\u003e contains the constants for personality(2) but also\nsome defintions that are useless or even harmful in userspace such as the\npersonality() macro.\n\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
