)]}'
{
  "commit": "b64b6bf4fd8b678a9f8477c11773c38a0a246a6d",
  "tree": "26e12749b51ce21f0f59b8d7ee45a3716d2a96d8",
  "parents": [
    "95f8fac8dc6139fedfb87746e0c8fda9b803cb46"
  ],
  "author": {
    "name": "Mikulas Patocka",
    "email": "mpatocka@redhat.com",
    "time": "Thu Apr 02 19:55:24 2009 +0100"
  },
  "committer": {
    "name": "Alasdair G Kergon",
    "email": "agk@redhat.com",
    "time": "Thu Apr 02 19:55:24 2009 +0100"
  },
  "message": "dm io: make sync_io uninterruptible\n\nIf someone sends signal to a process performing synchronous dm-io call,\nthe kernel may crash.\n\nThe function sync_io attempts to exit with -EINTR if it has pending signal,\nhowever the structure \"io\" is allocated on stack, so already submitted io\nrequests end up touching unallocated stack space and corrupting kernel memory.\n\nsync_io sets its state to TASK_UNINTERRUPTIBLE, so the signal can\u0027t break out\nof io_schedule() --- however, if the signal was pending before sync_io entered\nwhile (1) loop, the corruption of kernel memory will happen.\n\nThere is no way to cancel in-progress IOs, so the best solution is to ignore\nsignals at this point.\n\nCc: stable@kernel.org\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "36e2b5e46a6b644f0e9902b57b29c0666541d733",
      "old_mode": 33188,
      "old_path": "drivers/md/dm-io.c",
      "new_id": "e73aabd61cd78abdbc63996704c177e6aea399d1",
      "new_mode": 33188,
      "new_path": "drivers/md/dm-io.c"
    }
  ]
}
