)]}'
{
  "commit": "ac0d86f5809598ddcd6bfa0ea8245ccc910e9eac",
  "tree": "09d874a29ca655faefc5fc5cb637aebd1a732744",
  "parents": [
    "6722e45c2de622eaf5f26d370b9de19632ac7478"
  ],
  "author": {
    "name": "Kay Sievers",
    "email": "kay.sievers@vrfy.org",
    "time": "Wed Oct 15 22:04:21 2008 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Thu Oct 16 11:21:47 2008 -0700"
  },
  "message": "block: sanitize invalid partition table entries\n\nWe currently follow blindly what the partition table lies about the\ndisk, and let the kernel create block devices which can not be accessed.\nTrying to identify the device leads to kernel logs full of:\n  sdb: rw\u003d0, want\u003d73392, limit\u003d28800\n  attempt to access beyond end of device\n\nHere is an example of a broken partition table, where sda2 starts\nbehind the end of the disk, and sdb3 is larger than the entire disk:\n  Disk /dev/sdb: 14 MB, 14745600 bytes\n  1 heads, 29 sectors/track, 993 cylinders, total 28800 sectors\n     Device Boot      Start         End      Blocks   Id  System\n  /dev/sdb1              29        7800        3886   83  Linux\n  /dev/sdb2           37801       45601        3900+  83  Linux\n  /dev/sdb3           15602       73402       28900+  83  Linux\n  /dev/sdb4           23403       28796        2697   83  Linux\n\nThe kernel creates these completely invalid devices, which can not be\naccessed, or may lead to other unpredictable failures:\n  grep . /sys/class/block/sdb*/{start,size}\n  /sys/class/block/sdb/size:28800\n  /sys/class/block/sdb1/start:29\n  /sys/class/block/sdb1/size:7772\n  /sys/class/block/sdb2/start:37801\n  /sys/class/block/sdb2/size:7801\n  /sys/class/block/sdb3/start:15602\n  /sys/class/block/sdb3/size:57801\n  /sys/class/block/sdb4/start:23403\n  /sys/class/block/sdb4/size:5394\n\nWith this patch, we ignore partitions which start behind the end of the disk,\nand limit partitions to the end of the disk if they pretend to be larger:\n  grep . /sys/class/block/sdb*/{start,size}\n  /sys/class/block/sdb/size:28800\n  /sys/class/block/sdb1/start:29\n  /sys/class/block/sdb1/size:7772\n  /sys/class/block/sdb3/start:15602\n  /sys/class/block/sdb3/size:13198\n  /sys/class/block/sdb4/start:23403\n  /sys/class/block/sdb4/size:5394\n\nThese warnings are printed to the kernel log:\n  sdb: p2 ignored, start 37801 is behind the end of the disk\n  sdb: p3 size 57801 limited to end of disk\n\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nCc: Herton Ronaldo Krzesinski \u003cherton@mandriva.com.br\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "7408227c49c91cefed99f861a90a8bbb85e8b346",
      "old_mode": 33188,
      "old_path": "fs/partitions/check.c",
      "new_id": "fbeb2f372a93dba06f0d9aab1cfb438389a5668e",
      "new_mode": 33188,
      "new_path": "fs/partitions/check.c"
    }
  ]
}
