)]}'
{
  "commit": "d02479bdeb1c9b037892061cdcf4e730183391fa",
  "tree": "1268f3dcf973f8fc3d86c84d9b09ff9048647491",
  "parents": [
    "179394af7a2baa1d0a3cb1670075310d72247d38"
  ],
  "author": {
    "name": "Oleg Nesterov",
    "email": "oleg@tv-sign.ru",
    "time": "Wed Aug 22 14:01:37 2007 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@woody.linux-foundation.org",
    "time": "Wed Aug 22 19:52:46 2007 -0700"
  },
  "message": "posix-timers: fix creation race\n\nsys_timer_create() sets -\u003eit_process and unlocks -\u003esiglock, then checks\ntmr-\u003eit_sigev_notify to define if get_task_struct() is needed.\n\nWe already passed -\u003eit_id to the caller, another thread can delete this timer\nand free its memory in between.\n\nAs a minimal fix, move this code under -\u003esiglock, sys_timer_delete() takes it\ntoo before calling release_posix_timer().  A proper serialization would be to\ntake -\u003eit_lock, we add a partly initialized timer on posix_timers_id, not\ngood.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.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": "6923ad8a5983dc8ddc8772d8461e1f98fa28e183",
      "old_mode": 33188,
      "old_path": "kernel/posix-timers.c",
      "new_id": "7a15afb73ed0352d9ee31f6d03334255c716e5a9",
      "new_mode": 33188,
      "new_path": "kernel/posix-timers.c"
    }
  ]
}
