)]}'
{
  "log": [
    {
      "commit": "f06295b44c296c8fb08823a3118468ae343b60f2",
      "tree": "cf50932653af81aae1dc33bbf18ba7d8a94f5223",
      "parents": [
        "a6684999f7c6bddd75cf9755ad7ff44435f72fff"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "kees.cook@canonical.com",
        "time": "Wed Jan 07 18:08:52 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:12 2009 -0800"
      },
      "message": "ELF: implement AT_RANDOM for glibc PRNG seeding\n\nWhile discussing[1] the need for glibc to have access to random bytes\nduring program load, it seems that an earlier attempt to implement\nAT_RANDOM got stalled.  This implements a random 16 byte string, available\nto every ELF program via a new auxv AT_RANDOM vector.\n\n[1] http://sourceware.org/ml/libc-alpha/2008-10/msg00006.html\n\nUlrich said:\n\nglibc needs right after startup a bit of random data for internal\nprotections (stack canary etc).  What is now in upstream glibc is that we\nalways unconditionally open /dev/urandom, read some data, and use it.  For\nevery process startup.  That\u0027s slow.\n\n...\n\nThe solution is to provide a limited amount of random data to the\nstarting process in the aux vector.  I suggested 16 bytes and this is\nwhat the patch implements.  If we need only 16 bytes or less we use the\ndata directly.  If we need more we\u0027ll use the 16 bytes to see a PRNG.\nThis avoids the costly /dev/urandom use and it allows the kernel to use\nthe most adequate source of random data for this purpose.  It might not\nbe the same pool as that for /dev/urandom.\n\nConcerns were expressed about the depletion of the randomness pool.  But\nthis patch doesn\u0027t make the situation worse, it doesn\u0027t deplete entropy\nmore than happens now.\n\nSigned-off-by: Kees Cook \u003ckees.cook@canonical.com\u003e\nCc: Jakub Jelinek \u003cjakub@redhat.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "483fad1c3fa1060d7e6710e84a065ad514571739",
      "tree": "98c2da31a58c71d1ae9c808bdf232cbbbe060550",
      "parents": [
        "e9f76354ce83a20c7768ad37caa033f6506b4f96"
      ],
      "author": {
        "name": "Nathan Lynch",
        "email": "ntl@pobox.com",
        "time": "Tue Jul 22 04:48:46 2008 +1000"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Fri Jul 25 15:44:39 2008 +1000"
      },
      "message": "ELF loader support for auxvec base platform string\n\nSome IBM POWER-based platforms have the ability to run in a\nmode which mostly appears to the OS as a different processor from the\nactual hardware.  For example, a Power6 system may appear to be a\nPower5+, which makes the AT_PLATFORM value \"power5+\".  This means that\nprograms are restricted to the ISA supported by Power5+;\nPower6-specific instructions are treated as illegal.\n\nHowever, some applications (virtual machines, optimized libraries) can\nbenefit from knowledge of the underlying CPU model.  A new aux vector\nentry, AT_BASE_PLATFORM, will denote the actual hardware.  For\nexample, on a Power6 system in Power5+ compatibility mode, AT_PLATFORM\nwill be \"power5+\" and AT_BASE_PLATFORM will be \"power6\".  The idea is\nthat AT_PLATFORM indicates the instruction set supported, while\nAT_BASE_PLATFORM indicates the underlying microarchitecture.\n\nIf the architecture has defined ELF_BASE_PLATFORM, copy that value to\nthe user stack in the same manner as ELF_PLATFORM.\n\nSigned-off-by: Nathan Lynch \u003cntl@pobox.com\u003e\nAcked-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "651910874633a75f4a726d44e449be0a56b4b2e0",
      "tree": "55adac70473da5618042f65dd652fcec0965732c",
      "parents": [
        "93ded9b8fd42abe2c3607097963d8de6ad9117eb"
      ],
      "author": {
        "name": "John Reiser",
        "email": "jreiser@BitWagon.com",
        "time": "Mon Jul 21 14:21:32 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 22 09:59:40 2008 -0700"
      },
      "message": "execve filename: document and export via auxiliary vector\n\nThe Linux kernel puts the filename argument of execve() into the new\naddress space.  Many developers are surprised to learn this.  Those who\nknow and could use it, object \"But it\u0027s not documented.\"\n\nThose who want to use it dislike the expression\n  (char *)(1+ strlen(env[-1+ n_env]) + env[-1+ n_env])\nbecause it requires locating the last original environment variable,\nand assumes that the filename follows the characters.\n\nThis patch documents the insertion of the filename, and makes it easier\nto find by adding a new tag AT_EXECFN in the ElfXX_auxv_t; see \u003celf.h\u003e.\n\nIn many cases readlink(\"/proc/self/exe\",) gives the same answer.  But if\nall the original pages get unmapped, then the kernel erases the symlink\nfor /proc/self/exe.  This can happen when a program decompressor does a\ngood job of cleaning up after uncompressing directly to memory, so that\nthe address space of the target program looks the same as if compression\nhad never happened.  One example is http://upx.sourceforge.net .\n\nOne notable use of the underlying concept (what path containED the\nexecutable) is glibc expanding $ORIGIN in DT_RUNPATH.  In practice for\nthe near term, it may be a good idea for user-mode code to use both\n/proc/self/exe and AT_EXECFN as fall-back methods for each other.\n/proc/self/exe can fail due to unmapping, AT_EXECFN can fail because it\nwon\u0027t be present on non-new systems.  The auxvec or {AT_EXECFN}.d_val\nalso can get overwritten, although in nearly all cases this would be the\nresult of a bug.\n\nThe runtime cost is one NEW_AUX_ENT using two words of stack space.  The\nunderlying value is maintained already as bprm-\u003eexec; setup_arg_pages()\nin fs/exec.c slides it for stack_shift, etc.\n\nSigned-off-by: John Reiser \u003cjreiser@BitWagon.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Jakub Jelinek \u003cjakub@redhat.com\u003e\nCc: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4f9a58d75bfe82ab2b8ba5b8506dfb190a267834",
      "tree": "791843f8cd609cb626a65c4004009084d87170d4",
      "parents": [
        "f77e34987070a20e4b3e06b868cb39eb73670467"
      ],
      "author": {
        "name": "Olaf Hering",
        "email": "olaf@aepfle.de",
        "time": "Tue Oct 16 23:30:12 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:43:00 2007 -0700"
      },
      "message": "increase AT_VECTOR_SIZE to terminate saved_auxv properly\n\ninclude/asm-powerpc/elf.h has 6 entries in ARCH_DLINFO.  fs/binfmt_elf.c\nhas 14 unconditional NEW_AUX_ENT entries and 2 conditional NEW_AUX_ENT\nentries.  So in the worst case, saved_auxv does not get an AT_NULL entry at\nthe end.\n\nThe saved_auxv array must be terminated with an AT_NULL entry.  Make the\nsize of mm_struct-\u003esaved_auxv arch dependend, based on the number of\nARCH_DLINFO entries.\n\nSigned-off-by: Olaf Hering \u003colh@suse.de\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Jakub Jelinek \u003cjakub@redhat.com\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "67daf5f11f06b9b15f8320de1d237ccc2e74fe43",
      "tree": "4dd751c65e36fb277fa7e1619279023590b05e29",
      "parents": [
        "8a430d74fea797fc55fef1ad4c21420212b83574"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Fri Jan 13 14:23:25 2006 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 13 09:12:21 2006 -0800"
      },
      "message": "[PATCH] Increase AT_VECTOR_SIZE\n\nOn PowerPC, we want to be able to provide an AT_PLATFORM aux table\nentry to userspace, so that glibc can choose optimized libraries for\nthe processor we\u0027re running on.  Unfortunately that would be the 21st\naux table entry on powerpc, meaning that the aux table including the\nterminating null entry would overflow the mm-\u003esaved_auxv[] array,\nleading to userland programs segfaulting.\n\nThis increases the size of the mm-\u003esaved_auxv array to be large enough\nto accommodate an AT_PLATFORM entry on powerpc.\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "36d57ac4a818cb4aa3edbdf63ad2ebc31106f925",
      "tree": "445eda00ee5974a65e21152cd240fb604c6d112d",
      "parents": [
        "32605a18152b246df483fadc1c23854addde8755"
      ],
      "author": {
        "name": "H. J. Lu",
        "email": "hjl@lucon.org",
        "time": "Tue Sep 06 15:16:49 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:21 2005 -0700"
      },
      "message": "[PATCH] auxiliary vector cleanups\n\nThe size of auxiliary vector is fixed at 42 in linux/sched.h.  But it isn\u0027t\nvery obvious when looking at linux/elf.h.  This patch adds AT_VECTOR_SIZE\nso that we can change it if necessary when a new vector is added.\n\nBecause of include file ordering problems, doing this necessitated the\nextraction of the AT_* symbols into a standalone header file.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    }
  ]
}
