)]}'
{
  "commit": "06eb23b1ba39c61ee5d5faeb42a097635693e370",
  "tree": "a06f34d6ed32521ea32641df30732d9eb9d24757",
  "parents": [
    "b52af40923fc91a12e3c7152d833e0c0c6a508f6"
  ],
  "author": {
    "name": "Oleg Nesterov",
    "email": "oleg@redhat.com",
    "time": "Mon Feb 09 02:02:33 2009 +0100"
  },
  "committer": {
    "name": "Ingo Molnar",
    "email": "mingo@elte.hu",
    "time": "Wed Feb 11 10:32:46 2009 +0100"
  },
  "message": "ptrace, x86: fix the usage of ptrace_fork()\n\nI noticed by pure accident we have ptrace_fork() and friends. This was\nadded by \"x86, bts: add fork and exit handling\", commit\nbf53de907dfdaac178c92d774aae7370d7b97d20.\n\nI can\u0027t test this, ds_request_bts() returns -EOPNOTSUPP, but I strongly\nbelieve this needs the fix. I think something like this program\n\n\tint main(void)\n\t{\n\t\tint pid \u003d fork();\n\n\t\tif (!pid) {\n\t\t\tptrace(PTRACE_TRACEME, 0, NULL, NULL);\n\t\t\tkill(getpid(), SIGSTOP);\n\t\t\tfork();\n\t\t} else {\n\t\t\tstruct ptrace_bts_config bts \u003d {\n\t\t\t\t.flags \u003d PTRACE_BTS_O_ALLOC,\n\t\t\t\t.size  \u003d 4 * 4096,\n\t\t\t};\n\n\t\t\twait(NULL);\n\n\t\t\tptrace(PTRACE_SETOPTIONS, pid, NULL, PTRACE_O_TRACEFORK);\n\t\t\tptrace(PTRACE_BTS_CONFIG, pid, \u0026bts, sizeof(bts));\n\t\t\tptrace(PTRACE_CONT, pid, NULL, NULL);\n\n\t\t\tsleep(1);\n\t\t}\n\n\t\treturn 0;\n\t}\n\nshould crash the kernel.\n\nIf the task is traced by its natural parent ptrace_reparented() returns 0\nbut we should clear -\u003ebtsxxx anyway.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Markus Metzger \u003cmarkus.t.metzger@intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "242a706e77218073f74b9b8aa44ca589aaa1cbf4",
      "old_mode": 33188,
      "old_path": "kernel/fork.c",
      "new_id": "43c039d55e95d91dd2dafe3b2cf9f9cab4cc43c0",
      "new_mode": 33188,
      "new_path": "kernel/fork.c"
    }
  ]
}
