)]}'
{
  "commit": "f2cc3eb133baa2e9dc8efd40f417106b2ee520f3",
  "tree": "37b08158ee5296e79a61aad086be36c742825e3b",
  "parents": [
    "96fabbf55ae79826f2e8a86f4066d7e8834315ae"
  ],
  "author": {
    "name": "Oleg Nesterov",
    "email": "oleg@tv-sign.ru",
    "time": "Fri Feb 08 04:19:06 2008 -0800"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@woody.linux-foundation.org",
    "time": "Fri Feb 08 09:22:26 2008 -0800"
  },
  "message": "do_wait: fix security checks\n\nImho, the current usage of security_task_wait() is not logical.\n\nSuppose we have the single child p, and security_task_wait(p) return\n-EANY.  In that case waitpid(-1) returns this error.  Why? Isn\u0027t it\nbetter to return ECHLD? We don\u0027t really have reapable children.\n\nNow suppose that child was stolen by gdb.  In that case we find this\nchild on -\u003eptrace_children and set flag \u003d 1, but we don\u0027t check that the\nchild was denied.  So, do_wait(..., WNOHANG) returns 0, this doesn\u0027t\nmatch the behaviour above.  Without WNOHANG do_wait() blocks only to\nreturn the error later, when the child will be untraced.  Inho, really\nstrange.\n\nI think eligible_child() should return the error only if the child\u0027s pid\nwas requested explicitly, otherwise we should silently ignore the tasks\nwhich were nacked by security_task_wait().\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Chris Wright \u003cchrisw@sous-sol.org\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: Stephen Smalley \u003csds@tycho.nsa.gov\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": "9ee229ea97e4dcb3c76716124601a9c3280974f1",
      "old_mode": 33188,
      "old_path": "kernel/exit.c",
      "new_id": "ee607720ae587490d0987ce27b62161b26c71226",
      "new_mode": 33188,
      "new_path": "kernel/exit.c"
    }
  ]
}
