)]}'
{
  "commit": "ea07890a680273b25127129fb555aac0d9324bea",
  "tree": "b0742aa5dd90792dc10be3563c1181582d0f5d9e",
  "parents": [
    "ae84e324709d6320ed8c1fd7b1736fcbaf26df95"
  ],
  "author": {
    "name": "Alexey Dobriyan",
    "email": "adobriyan@sw.ru",
    "time": "Tue May 08 00:28:39 2007 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@woody.linux-foundation.org",
    "time": "Tue May 08 11:15:08 2007 -0700"
  },
  "message": "Fix race between rmmod and cat /proc/kallsyms\n\nmodule_get_kallsym() leaks \"struct module *\" outside of module_mutex which is\nno-no, because module can dissapear right after mutex unlock.\n\nCopy all needed information from inside module_mutex into caller-supplied\nspace.\n\n[bunk@stusta.de: is_exported() can now become static]\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\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": "7999302166268bcd4f9a4af3ff42a82eaa960a5d",
      "old_mode": 33188,
      "old_path": "include/linux/module.h",
      "new_id": "58d5a10cdf0d24a84543a373b33b9eb54dd3280f",
      "new_mode": 33188,
      "new_path": "include/linux/module.h"
    },
    {
      "type": "modify",
      "old_id": "d086c91d44edb8a0c89e95b5b0ebd1ea4005a52d",
      "old_mode": 33188,
      "old_path": "kernel/kallsyms.c",
      "new_id": "f1ea6f66ac6cb4c5f06cd421920a4917496e8521",
      "new_mode": 33188,
      "new_path": "kernel/kallsyms.c"
    },
    {
      "type": "modify",
      "old_id": "43a529a1fa487b62fc570f2a08a2585c8274068b",
      "old_mode": 33188,
      "old_path": "kernel/module.c",
      "new_id": "5ee65994a3bc86542510f1b81c1cd8e997546371",
      "new_mode": 33188,
      "new_path": "kernel/module.c"
    }
  ]
}
