)]}'
{
  "commit": "8a88951b5878dc475dcd841cefc767e36397d14e",
  "tree": "c31fd8cdfa08dce4768f42e556d97929deac2343",
  "parents": [
    "50b8d257486a45cba7b65ca978986ed216bbcc10"
  ],
  "author": {
    "name": "Oleg Nesterov",
    "email": "oleg@redhat.com",
    "time": "Wed Jan 04 17:29:20 2012 +0100"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Wed Jan 04 15:01:59 2012 -0800"
  },
  "message": "ptrace: ensure JOBCTL_STOP_SIGMASK is not zero after detach\n\nThis is the temporary simple fix for 3.2, we need more changes in this\narea.\n\n1. do_signal_stop() assumes that the running untraced thread in the\n   stopped thread group is not possible. This was our goal but it is\n   not yet achieved: a stopped-but-resumed tracee can clone the running\n   thread which can initiate another group-stop.\n\n   Remove WARN_ON_ONCE(!current-\u003eptrace).\n\n2. A new thread always starts with -\u003ejobctl \u003d 0. If it is auto-attached\n   and this group is stopped, __ptrace_unlink() sets JOBCTL_STOP_PENDING\n   but JOBCTL_STOP_SIGMASK part is zero, this triggers WANR_ON(!signr)\n   in do_jobctl_trap() if another debugger attaches.\n\n   Change __ptrace_unlink() to set the artificial SIGSTOP for report.\n\n   Alternatively we could change ptrace_init_task() to copy signr from\n   current, but this means we can copy it for no reason and hide the\n   possible similar problems.\n\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[3.1]\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "24d04477b2575f0239782cf6287298a47d50f48c",
      "old_mode": 33188,
      "old_path": "kernel/ptrace.c",
      "new_id": "78ab24a7b0e440e2b44d75cc08bc353ab6f939c2",
      "new_mode": 33188,
      "new_path": "kernel/ptrace.c"
    },
    {
      "type": "modify",
      "old_id": "b3f78d09a1053b67f62719a8879f6619ae12253b",
      "old_mode": 33188,
      "old_path": "kernel/signal.c",
      "new_id": "206551563cce5e9c09796c32674d634f8802d69b",
      "new_mode": 33188,
      "new_path": "kernel/signal.c"
    }
  ]
}
