)]}'
{
  "log": [
    {
      "commit": "e108526e77aa41c89b3be96f75d97615db2b751c",
      "tree": "11f3041d170d32ea49894527aa119016d76716b5",
      "parents": [
        "338b9bb3adac0d2c5a1e180491d9b001d624c402"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Jul 23 21:26:44 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:13 2008 -0700"
      },
      "message": "move memory_read_from_buffer() from fs.h to string.h\n\nJames Bottomley warns that inclusion of linux/fs.h in a low level\ndriver was always a danger signal.  This patch moves\nmemory_read_from_buffer() from fs.h to string.h and fixes includes in\nexisting memory_read_from_buffer() users.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@hansenpartnership.com\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Zhang Rui \u003crui.zhang@intel.com\u003e\nCc: Bob Moore \u003crobert.moore@intel.com\u003e\nCc: Thomas Renninger \u003ctrenn@suse.de\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "34990cf702bdf2b4964e0629dab4af7669f8b2c5",
      "tree": "33ec40ee97be1a9a6b3565dcf49d1dcffff191f9",
      "parents": [
        "7dffa3c673fbcf835cd7be80bb4aec8ad3f51168"
      ],
      "author": {
        "name": "David Brownell",
        "email": "david-b@pacbell.net",
        "time": "Thu May 01 04:34:42 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 01 08:03:59 2008 -0700"
      },
      "message": "Add a new sysfs_streq() string comparison function\n\nAdd a new sysfs_streq() string comparison function, which ignores\nthe trailing newlines found in sysfs inputs.  By example:\n\n\tsysfs_streq(\"a\", \"b\")\t\u003d\u003d\u003e false\n\tsysfs_streq(\"a\", \"a\")\t\u003d\u003d\u003e true\n\tsysfs_streq(\"a\", \"a\\n\")\t\u003d\u003d\u003e true\n\tsysfs_streq(\"a\\n\", \"a\")\t\u003d\u003d\u003e true\n\nThis is intended to simplify parsing of sysfs inputs, letting them\navoid the need to manually strip off newlines from inputs.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nAcked-by: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "97ef1bb0c8e371b7988287f38bd107c4aa14d78d",
      "tree": "ecf658ca568ae33536578ed3bb48eae2a813eb23",
      "parents": [
        "f3baa4827a4b13905dbbdddf15463541bd671dfd"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Oct 30 21:44:00 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Oct 30 21:44:00 2007 -0700"
      },
      "message": "[TIPC]: Fix headercheck wrt. tipc_config.h\n\nIt wants string functions like memcpy() for inline\nroutines, and these define userland interfaces.\n\nThe only clean way to deal with this is to simply\nput linux/string.h into unifdef-y and have it\ninclude \u003cstring.h\u003e when not-__KERNEL__.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d84d1cc7647c7e4f77d517e2d87b4a106a0420d9",
      "tree": "b6ccc40d323998d4ad013c7b05613bc727a8f4e0",
      "parents": [
        "1e66df3ee301209f4a38df097d7cc5cb9b367a3f"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@xensource.com",
        "time": "Tue Jul 17 18:37:02 2007 -0700"
      },
      "committer": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed Jul 18 08:47:40 2007 -0700"
      },
      "message": "add argv_split()\n\nargv_split() is a helper function which takes a string, splits it at\nwhitespace, and returns a NULL-terminated argv vector.  This is\ndeliberately simple - it does no quote processing of any kind.\n\n[ Seems to me that this is something which is already being done in\n  the kernel, but I couldn\u0027t find any other implementations, either to\n  steal or replace.  Keep an eye out. ]\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: Chris Wright \u003cchrisw@sous-sol.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\n"
    },
    {
      "commit": "1e66df3ee301209f4a38df097d7cc5cb9b367a3f",
      "tree": "55beb2a342dbe08c0404f749e02808e3f09023ac",
      "parents": [
        "8b4a40809e5330c9da5d20107d693d92d73b31dc"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@xensource.com",
        "time": "Tue Jul 17 18:37:02 2007 -0700"
      },
      "committer": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed Jul 18 08:47:39 2007 -0700"
      },
      "message": "add kstrndup\n\nAdd a kstrndup function, modelled on strndup.  Like strndup this\nreturns a string copied into its own allocated memory, but it copies\nno more than the specified number of bytes from the source.\n\nRemove private strndup() from irda code.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: Chris Wright \u003cchrisw@sous-sol.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nCc: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nCc: Al Viro \u003cviro@ftp.linux.org.uk\u003e\nCc: Panagiotis Issaris \u003ctakis@issaris.org\u003e\nCc: Rene Scharfe \u003crene.scharfe@lsrfire.ath.cx\u003e\n"
    },
    {
      "commit": "ded220bd8f0823771fc0a9bdf7f5bcbe543197b6",
      "tree": "530854859821c51cb3bcd9092140c535153627e5",
      "parents": [
        "357418e7cac16fed4ca558c6037d189d2109c9c2"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Mar 29 01:18:42 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Apr 26 01:54:39 2007 -0700"
      },
      "message": "[STRING]: Move strcasecmp/strncasecmp to lib/string.c\n\nWe have several platforms using local copies of identical\ncode.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1a2f67b459bb7846d4a15924face63eb2683acc2",
      "tree": "4c010d4c4220c9523342fb0daac90a433f36b53e",
      "parents": [
        "9442e691e4aec85eba43ac60a3e77c77fd2e73a4"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sat Sep 30 23:27:20 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 01 00:39:19 2006 -0700"
      },
      "message": "[PATCH] kmemdup: introduce\n\nOne of idiomatic ways to duplicate a region of memory is\n\n\tdst \u003d kmalloc(len, GFP_KERNEL);\n\tif (!dst)\n\t\treturn -ENOMEM;\n\tmemcpy(dst, src, len);\n\nwhich is neat code except a programmer needs to write size twice.  Which\nsometimes leads to mistakes.  If len passed to kmalloc is smaller that len\npassed to memcpy, it\u0027s straight overwrite-beyond-end.  If len passed to\nmemcpy is smaller than len passed to kmalloc, it\u0027s either a) legit\nbehaviour ;-), or b) cloned buffer will contain garbage in second half.\n\nSlight trolling of commit lists shows several duplications bugs\ndone exactly because of diverged lenghts:\n\n\tLinux:\n\t\t[CRYPTO]: Fix memcpy/memset args.\n\t\t[PATCH] memcpy/memset fixes\n\tOpenBSD:\n\t\tkerberosV/src/lib/asn1: der_copy.c:1.4\n\nIf programmer is given only one place to play with lengths, I believe, such\nmistakes could be avoided.\n\nWith kmemdup, the snippet above will be rewritten as:\n\n\tdst \u003d kmemdup(src, len, GFP_KERNEL);\n\tif (!dst)\n\t\treturn -ENOMEM;\n\nThis also leads to smaller code (kzalloc effect). Quick grep shows\n200+ places where kmemdup() can be used.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "481fad483487ea967fe20bbc9e565d787f7bf20f",
      "tree": "3a76336443129975d9f7ba99f9a9ea1c494315e5",
      "parents": [
        "3fa2164d03fb7af17fcfe4f8800dd754fbd99ff7"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Fri Jun 23 02:05:44 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:43:06 2006 -0700"
      },
      "message": "[PATCH] strstrip() API\n\nAdd a new strstrip() function to lib/string.c for removing leading and\ntrailing whitespace from a string.\n\nCc: Michael Holzheu \u003cholzheu@de.ibm.com\u003e\nAcked-by: Ingo Oeser \u003cioe-lkml@rameria.de\u003e\nAcked-by: Joern Engel \u003cjoern@wohnheim.fh-wedel.de\u003e\nCc: Corey Minyard \u003cminyard@acm.org\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Michael Holzheu \u003cHOLZHEU@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8833d328caf009f8da58337e17a2cf5d52993a7c",
      "tree": "dc12f9c94f28ad0fb41ea6c4ebe6a0ae31c36ad1",
      "parents": [
        "894b5779ceeabdce139068310e58bcf51ed9bb22"
      ],
      "author": {
        "name": "Kyle McMartin",
        "email": "kyle@parisc-linux.org",
        "time": "Mon Apr 10 22:53:57 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:18:40 2006 -0700"
      },
      "message": "[PATCH] Clean up arch-overrides in linux/string.h\n\nSome string functions were safely overrideable in lib/string.c, but their\ncorresponding declarations in linux/string.h were not.  Correct this, and\nmake strcspn overrideable.\n\nOdds of someone wanting to do optimized assembly of these are small, but\nfor the sake of cleanliness, might as well bring them into line with the\nrest of the file.\n\nSigned-off-by: Kyle McMartin \u003ckyle@parisc-linux.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "96840aa00a031069a136ec4c55d0bdd09ac6d3a7",
      "tree": "f93592ca47f2412aa0cce3ce4c116d1678a42239",
      "parents": [
        "6687a97d4041f996f725902d2990e5de6ef5cbe5"
      ],
      "author": {
        "name": "Davi Arnaut",
        "email": "davi.arnaut@gmail.com",
        "time": "Fri Mar 24 03:18:42 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:31 2006 -0800"
      },
      "message": "[PATCH] strndup_user()\n\nThis patch series creates a strndup_user() function to easy copying C strings\nfrom userspace.  Also we avoid common pitfalls like userspace modifying the\nfinal \\0 after the strlen_user().\n\nSigned-off-by: Davi Arnaut \u003cdavi.arnaut@gmail.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "dd0fc66fb33cd610bc1a5db8a5e232d34879b4d7",
      "tree": "51f96a9db96293b352e358f66032e1f4ff79fafb",
      "parents": [
        "3b0e77bd144203a507eb191f7117d2c5004ea1de"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Fri Oct 07 07:46:04 2005 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 08 15:00:57 2005 -0700"
      },
      "message": "[PATCH] gfp flags annotations - part 1\n\n - added typedef unsigned int __nocast gfp_t;\n\n - replaced __nocast uses for gfp flags with gfp_t - it gives exactly\n   the same warnings as far as sparse is concerned, doesn\u0027t change\n   generated code (from gcc point of view we replaced unsigned int with\n   typedef) and documents what\u0027s going on far better.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0db925af1db5f3dfe1691c35b39496e2baaff9c9",
      "tree": "bb9f827fa001b27f7a902abf174e8f0057c9df81",
      "parents": [
        "b84c21572de8a732062eff5592e3c4b3b1793bb8"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Jul 07 17:56:58 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jul 07 18:23:46 2005 -0700"
      },
      "message": "[PATCH] propagate __nocast annotations\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "543537bd922692bc978e2e356fcd8bfc9c2ee7d5",
      "tree": "0089e3907e7d6c17c01cffc6ea4a8962ed053079",
      "parents": [
        "991114c6fa6a21d1fa4d544abe78592352860c82"
      ],
      "author": {
        "name": "Paulo Marques",
        "email": "pmarques@grupopie.com",
        "time": "Thu Jun 23 00:09:02 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:18 2005 -0700"
      },
      "message": "[PATCH] create a kstrdup library function\n\nThis patch creates a new kstrdup library function and changes the \"local\"\nimplementations in several places to use this function.\n\nMost of the changes come from the sound and net subsystems.  The sound part\nhad already been acknowledged by Takashi Iwai and the net part by David S.\nMiller.\n\nI left UML alone for now because I would need more time to read the code\ncarefully before making changes there.\n\nSigned-off-by: Paulo Marques \u003cpmarques@grupopie.com\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"
    }
  ]
}
