)]}'
{
  "commit": "ceeab92971e8af05c1e81a4ff2c271124b55bb9b",
  "tree": "517cc3160679d39da57cee982a1aff7cbf7fb789",
  "parents": [
    "31f73bee3e170b7cabb35db9e2f4bf7919b9d036"
  ],
  "author": {
    "name": "Julia Lawall",
    "email": "julia@diku.dk",
    "time": "Fri Aug 06 22:58:49 2010 +0200"
  },
  "committer": {
    "name": "Tyler Hicks",
    "email": "tyhicks@linux.vnet.ibm.com",
    "time": "Mon Aug 09 13:25:24 2010 -0500"
  },
  "message": "fs/ecryptfs/file.c: introduce missing free\n\nThe comments in the code indicate that file_info should be released if the\nfunction fails.  This releasing is done at the label out_free, not out.\n\nThe semantic match that finds this problem is as follows:\n(http://www.emn.fr/x-info/coccinelle/)\n\n// \u003csmpl\u003e\n@r exists@\nlocal idexpression x;\nstatement S;\nexpression E;\nidentifier f,f1,l;\nposition p1,p2;\nexpression *ptr !\u003d NULL;\n@@\n\nx@p1 \u003d kmem_cache_zalloc(...);\n...\nif (x \u003d\u003d NULL) S\n\u003c... when !\u003d x\n     when !\u003d if (...) { \u003c+...x...+\u003e }\n(\nx-\u003ef1 \u003d E\n|\n (x-\u003ef1 \u003d\u003d NULL || ...)\n|\n f(...,x-\u003ef1,...)\n)\n...\u003e\n(\n return \u003c+...x...+\u003e;\n|\n return@p2 ...;\n)\n\n@script:python@\np1 \u003c\u003c r.p1;\np2 \u003c\u003c r.p2;\n@@\n\nprint \"* file: %s kmem_cache_zalloc %s\" % (p1[0].file,p1[0].line)\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: stable@kernel.org\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6e4f84cf73e8da11a5dd625c2a1edff93f5736bd",
      "old_mode": 33188,
      "old_path": "fs/ecryptfs/file.c",
      "new_id": "622c95140802c33d18713e16eb29b7f23c498104",
      "new_mode": 33188,
      "new_path": "fs/ecryptfs/file.c"
    }
  ]
}
