)]}'
{
  "commit": "3b53fbf4314594fa04544b02b2fc6e607912da18",
  "tree": "af88f6c7ecbdf06719c92cc8891f75f497b70555",
  "parents": [
    "518a09ef11f8454f4676125d47c3e775b300c6a5"
  ],
  "author": {
    "name": "David S. Miller",
    "email": "davem@davemloft.net",
    "time": "Thu Nov 06 15:45:32 2008 -0800"
  },
  "committer": {
    "name": "David S. Miller",
    "email": "davem@davemloft.net",
    "time": "Thu Nov 06 15:45:32 2008 -0800"
  },
  "message": "net: Fix recursive descent in __scm_destroy().\n\n__scm_destroy() walks the list of file descriptors in the scm_fp_list\npointed to by the scm_cookie argument.\n\nThose, in turn, can close sockets and invoke __scm_destroy() again.\n\nThere is nothing which limits how deeply this can occur.\n\nThe idea for how to fix this is from Linus.  Basically, we do all of\nthe fput()s at the top level by collecting all of the scm_fp_list\nobjects hit by an fput().  Inside of the initial __scm_destroy() we\nkeep running the list until it is empty.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b483f39a7112073e17c6ce8edc2fa0b17c9b61e1",
      "old_mode": 33188,
      "old_path": "include/linux/sched.h",
      "new_id": "295b7c756ca6107aee29ee4c12e3eb2f486c9f7e",
      "new_mode": 33188,
      "new_path": "include/linux/sched.h"
    },
    {
      "type": "modify",
      "old_id": "06df126103cab8224d6cf7ae64c7f00e75f06e12",
      "old_mode": 33188,
      "old_path": "include/net/scm.h",
      "new_id": "33e9986beb86dd95d6f3f962ca8a89281c874a9d",
      "new_mode": 33188,
      "new_path": "include/net/scm.h"
    },
    {
      "type": "modify",
      "old_id": "10f5c65f6a470cc914de500b43d63990e89db1b6",
      "old_mode": 33188,
      "old_path": "net/core/scm.c",
      "new_id": "ab242cc1accaae7673b76784aa5838a76d9b10c4",
      "new_mode": 33188,
      "new_path": "net/core/scm.c"
    }
  ]
}
