)]}'
{
  "log": [
    {
      "commit": "1804dc6e145f3f24a8c94deddfc0a986d380a27f",
      "tree": "965ad5f3dfa7c6dc52bdfab7d838a82f78c8ad12",
      "parents": [
        "35fc908dc0e7ab0002ef18787886cc1340028020"
      ],
      "author": {
        "name": "Clement Calmels",
        "email": "cboulte@gmail.com",
        "time": "Wed Aug 20 14:09:00 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 20 15:40:30 2008 -0700"
      },
      "message": "/proc/self/maps doesn\u0027t display the real file offset\n\nThis addresses\n\n\thttp://bugzilla.kernel.org/show_bug.cgi?id\u003d11318\n\nIn function show_map (file: fs/proc/task_mmu.c), if vma-\u003evm_pgoff \u003e 2^20\nthan (vma-\u003evm_pgoff \u003c\u003c PAGE_SIZE) is greater than 2^32 (with PAGE_SIZE\nequal to 4096 (i.e.  2^12).  The next seq_printf use an unsigned long for\nthe conversion of (vma-\u003evm_pgoff \u003c\u003c PAGE_SIZE), as a result the offset\nvalue displayed in /proc/self/maps is truncated if the page offset is\ngreater than 2^20.\n\nA test that shows this issue:\n\n#define _GNU_SOURCE\n#include \u003csys/types.h\u003e\n#include \u003csys/stat.h\u003e\n#include \u003csys/mman.h\u003e\n#include \u003cstdlib.h\u003e\n#include \u003cstdio.h\u003e\n#include \u003cfcntl.h\u003e\n#include \u003cunistd.h\u003e\n#include \u003cstring.h\u003e\n\n#define PAGE_SIZE (getpagesize())\n\n#if __i386__\n#   define U64_STR \"%llx\"\n#elif __x86_64\n#   define U64_STR \"%lx\"\n#else\n#   error \"Architecture Unsupported\"\n#endif\n\nint main(int argc, char *argv[])\n{\n\tint fd;\n\tchar *addr;\n\toff64_t offset \u003d 0x10000000;\n\tchar *filename \u003d \"/dev/zero\";\n\n\tfd \u003d open(filename, O_RDONLY);\n\tif (fd \u003c 0) {\n\t\tperror(\"open\");\n\t\treturn 1;\n\t}\n\n\toffset *\u003d 0x10;\n\tprintf(\"offset \u003d \" U64_STR \"\\n\", offset);\n\n\taddr \u003d (char*)mmap64(NULL, PAGE_SIZE, PROT_READ, MAP_PRIVATE, fd,\n\t\t\t     offset);\n\tif ((void*)addr \u003d\u003d MAP_FAILED) {\n\t\tperror(\"mmap64\");\n\t\treturn 1;\n\t}\n\n\t{\n\t\tFILE *fmaps;\n\t\tchar *line \u003d NULL;\n\t\tsize_t len \u003d 0;\n\t\tssize_t read;\n\t\tsize_t filename_len \u003d strlen(filename);\n\n\t\tfmaps \u003d fopen(\"/proc/self/maps\", \"r\");\n\t\tif (!fmaps) {\n\t\t\tperror(\"fopen\");\n\t\t\treturn 1;\n\t\t}\n\t\twhile ((read \u003d getline(\u0026line, \u0026len, fmaps)) !\u003d -1) {\n\t\t\tif ((read \u003e filename_len + 1)\n\t\t\t    \u0026\u0026 (strncmp(\u0026line[read - filename_len - 1], filename, filename_len) \u003d\u003d 0))\n\t\t\t\tprintf(\"%s\", line);\n\t\t}\n\n\t\tif (line)\n\t\t\tfree(line);\n\n\t\tfclose(fmaps);\n\t}\n\n\tclose(fd);\n\treturn 0;\n}\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Clement Calmels \u003ccboulte@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": "0d5c9f5f59a61cf8e98e2925cb5d81cbe7694305",
      "tree": "f0df6740f1797cd2ac76a684d29fa9162fd61816",
      "parents": [
        "925d1c401fa6cfd0df5d2e37da8981494ccdec07"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@sw.ru",
        "time": "Tue Apr 29 01:01:37 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:17 2008 -0700"
      },
      "message": "proc: switch to proc_create()\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c32c2f63a9d6c953aaf168c0b2551da9734f76d2",
      "tree": "14eca3083f3de4a87a95359ab66109c10add1ae7",
      "parents": [
        "e83aece3afad4d56cc01abe069d3519e851cd2de"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Thu Feb 14 19:38:43 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 14 21:17:08 2008 -0800"
      },
      "message": "d_path: Make seq_path() use a struct path argument\n\nseq_path() is always called with a dentry and a vfsmount from a struct path.\nMake seq_path() take it directly as an argument.\n\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "03a44825be987d720df854f63b2f7bd30e46bdde",
      "tree": "6ac01a425ff2201db972fd3b836efc9b0ab6eaec",
      "parents": [
        "ec26e11740cdff8c3c8330ea235478704ffb4a71"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@computergmbh.de",
        "time": "Fri Feb 08 04:21:19 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:38 2008 -0800"
      },
      "message": "procfs: constify function pointer tables\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@computergmbh.de\u003e\nAcked-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nAcked-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nAcked-By: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Bryan Wu \u003cbryan.wu@analog.com\u003e\nAcked-by: Jesper Nilsson \u003cjesper.nilsson@axis.com\u003e\nCc: \u003clinux-arch@vger.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": "00977a59b951207d38380c75f03a36829950265c",
      "tree": "26933feafebffca95df02c19df03f5e56aada47e",
      "parents": [
        "d54b1fdb1d9f82e375a299e22bd366aad52d4c34"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Mon Feb 12 00:55:34 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:45 2007 -0800"
      },
      "message": "[PATCH] mark struct file_operations const 6\n\nMany struct file_operations in the kernel can be \"const\".  Marking them const\nmoves these to the .rodata section, which avoids false sharing with potential\ndirty data.  In addition it\u0027ll catch accidental writes at compile time to\nthese shared resources.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2fddfeefeed703b7638af97aa3048f82a2d53b03",
      "tree": "a58e1f032b3754d4c55556578a96a32a6f1715ee",
      "parents": [
        "f427f5d5d6b0eb729505a2d9c0a6cad22734a74c"
      ],
      "author": {
        "name": "Josef \"Jeff\" Sipek",
        "email": "jsipek@cs.sunysb.edu",
        "time": "Fri Dec 08 02:36:36 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:41 2006 -0800"
      },
      "message": "[PATCH] proc: change uses of f_{dentry, vfsmnt} to use f_path\n\nChange all the uses of f_{dentry,vfsmnt} to f_path.{dentry,mnt} in the proc\nfilesystem code.\n\nSigned-off-by: Josef \"Jeff\" Sipek \u003cjsipek@cs.sunysb.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "dbf8685c8e21404e3a8ed244bd0219d3c4b89101",
      "tree": "716b83de856049b51abf9770840ea122b7ca3285",
      "parents": [
        "d00c7b993712e4bb16d0012b35b654e40159b327"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Sep 27 01:50:19 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 27 08:26:14 2006 -0700"
      },
      "message": "[PATCH] NOMMU: Implement /proc/pid/maps for NOMMU\n\nImplement /proc/pid/maps for NOMMU by reading the vm_area_list attached to\ncurrent-\u003emm-\u003econtext.vmlist.\n\nSigned-off-by: 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": "b65574fec5db1211bce7fc8bec7a2b32486e0670",
      "tree": "eed63a503028c04db304c37969fa0c54e8c28dda",
      "parents": [
        "5ee832dbc6770135ec8d63296af0a4374557bb79"
      ],
      "author": {
        "name": "David McCullough",
        "email": "davidm@snapgear.com",
        "time": "Mon Oct 17 16:43:29 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 17 17:03:57 2005 -0700"
      },
      "message": "[PATCH] output of /proc/maps on nommu systems is incomplete\n\nCurrently you do not get all the map entries on nommu systems because the\nstart function doesn\u0027t index into the list using the value of \"pos\".\n\nSigned-off-by: David McCullough \u003cdavidm@snapgear.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"
    }
  ]
}
