)]}'
{
  "log": [
    {
      "commit": "199bc9ff5ca5e4b3bcaff8927b2983c65f34c263",
      "tree": "65eae0838210e0807e75ed2caa7e1f2d151b7f09",
      "parents": [
        "c69f677cc852f3f7b2342ab2f1598670a463d576"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Mon Nov 30 09:06:40 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 30 13:52:40 2009 -0800"
      },
      "message": "jffs2: Fix memory corruption in jffs2_read_inode_range()\n\nIn 2.6.23 kernel, commit a32ea1e1f925399e0d81ca3f7394a44a6dafa12c\n(\"Fix read/truncate race\") fixed a race in the generic code, and as a\nside effect, now do_generic_file_read() can ask us to readpage() past\nthe i_size. This seems to be correctly handled by the block routines\n(e.g. block_read_full_page() fills the page with zeroes in case if\nsomebody is trying to read past the last inode\u0027s block).\n\nJFFS2 doesn\u0027t handle this; it assumes that it won\u0027t be asked to read\npages which don\u0027t exist -- and thus that there will be at least _one_\nvalid \u0027frag\u0027 on the page it\u0027s being asked to read. It will fill any\nholes with the following memset:\n\n  memset(buf, 0, min(end, frag-\u003eofs + frag-\u003esize) - offset);\n\nWhen the \u0027closest smaller match\u0027 returned by jffs2_lookup_node_frag() is\nactually on a previous page and ends before \u0027offset\u0027, that results in:\n\n  memset(buf, 0, \u003chuge unsigned negative\u003e);\n\nHopefully, in most cases the corruption is fatal, and quickly causing\nrandom oopses, like this:\n\n  root@10.0.0.4:~/ltp-fs-20090531# ./testcases/kernel/fs/ftest/ftest01\n  Unable to handle kernel paging request for data at address 0x00000008\n  Faulting instruction address: 0xc01cd980\n  Oops: Kernel access of bad area, sig: 11 [#1]\n  [...]\n  NIP [c01cd980] rb_insert_color+0x38/0x184\n  LR [c0043978] enqueue_hrtimer+0x88/0xc4\n  Call Trace:\n  [c6c63b60] [c004f9a8] tick_sched_timer+0xa0/0xe4 (unreliable)\n  [c6c63b80] [c0043978] enqueue_hrtimer+0x88/0xc4\n  [c6c63b90] [c0043a48] __run_hrtimer+0x94/0xbc\n  [c6c63bb0] [c0044628] hrtimer_interrupt+0x140/0x2b8\n  [c6c63c10] [c000f8e8] timer_interrupt+0x13c/0x254\n  [c6c63c30] [c001352c] ret_from_except+0x0/0x14\n  --- Exception: 901 at memset+0x38/0x5c\n      LR \u003d jffs2_read_inode_range+0x144/0x17c\n  [c6c63cf0] [00000000] (null) (unreliable)\n\nThis patch fixes the issue, plus fixes all LTP tests on NAND/UBI with\nJFFS2 filesystem that were failing since 2.6.23 (seems like the bug\nabove also broke the truncation).\n\nReported-By: Anton Vorontsov \u003cavorontsov@ru.mvista.com\u003e\nTested-By: Anton Vorontsov \u003cavorontsov@ru.mvista.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c00c310eac04a28d2143368ae988716792ed53ce",
      "tree": "38ddce44f83105b2d593620c34638d699052857f",
      "parents": [
        "c36c46d53b2f95bfcbe992cfb541a78ab92310a4"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed Apr 25 14:16:47 2007 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed Apr 25 14:16:47 2007 +0100"
      },
      "message": "[JFFS2] Tidy up licensing/copyright boilerplate.\n\nIn particular, remove the bit in the LICENCE file about contacting\nRed Hat for alternative arrangements. Their errant IS department broke\nthat arrangement a long time ago -- the policy of collecting copyright\nassignments from contributors came to an end when the plug was pulled on\nthe servers hosting the project, without notice or reason.\n\nWe do still dual-license it for use with eCos, with the GPL+exception\nlicence approved by the FSF as being GPL-compatible. It\u0027s just that nobody\nhas the right to license it differently.\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\n"
    },
    {
      "commit": "182ec4eee397543101a6db8906ed88727d3f7e53",
      "tree": "0f6dd2c52697123702bdf0c3a7143537f947b060",
      "parents": [
        "97894cda5773e59bd13e87b72077751099419a9f"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Nov 07 11:16:07 2005 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@mtd.linutronix.de",
        "time": "Mon Nov 07 14:18:56 2005 +0100"
      },
      "message": "[JFFS2] Clean up trailing white spaces\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "e0c8e42f8f218063ff6838b25038ccef7ddf257e",
      "tree": "a072b5cfd6b9af41dfef13821383af584d989ca6",
      "parents": [
        "6dac02a5e1bba0bb88ece50160fc4a64cccf30d1"
      ],
      "author": {
        "name": "Artem B. Bityutskiy",
        "email": "dedekind@infradead.org",
        "time": "Sun Jul 24 16:14:17 2005 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@mtd.linutronix.de",
        "time": "Sun Nov 06 17:06:49 2005 +0100"
      },
      "message": "[JFFS2] Debug code clean up - step 3\n\nVarious simplifiactions. printk format corrections.\nConvert more code to use the new debug functions.\n\nSigned-off-by: Artem B. Bityutskiy \u003cdedekind@infradead.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "730554d94607572ef8300c5c9848540b42394897",
      "tree": "fcefe9225afae333e09a59bdb2b8ac6e44676ce6",
      "parents": [
        "dae6227f71fedb40b2478d3062397d3ab54e7556"
      ],
      "author": {
        "name": "Artem B. Bityutskiy",
        "email": "dedekind@infradead.org",
        "time": "Sun Jul 17 07:56:26 2005 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@mtd.linutronix.de",
        "time": "Sun Nov 06 16:21:25 2005 +0100"
      },
      "message": "[JFFS2] Debug code clean up - step 1\n\nMove debug functions into a seperate source file\n\nSigned-off-by: Artem B. Bityutskiy \u003cdedekind@infradead.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "32f1a95d505b99b1f01b6aeea36ec3f97245b357",
      "tree": "5da0e8b01362cf6b0cc79f11e5e9b3fd4ad169d6",
      "parents": [
        "20a6c211903dce92a0db7f19c221cfa3f2cb4c32"
      ],
      "author": {
        "name": "Artem B. Bityuckiy",
        "email": "dedekind@infradead.org",
        "time": "Tue Mar 01 10:50:52 2005 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@mtd.linutronix.de",
        "time": "Mon May 23 12:48:15 2005 +0200"
      },
      "message": "[JFFS2] Add symlink caching support.\n\nSigned-off-by: Artem B. Bityuckiy \u003cdedekind@infradead.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\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"
    }
  ]
}
