)]}'
{
  "commit": "d9d691f584bd012d235c35279c043a2ccd23d7d7",
  "tree": "9094c048d6df951f14e2fb1cc790366791fdd7d5",
  "parents": [
    "73210a135b9dd53ba59beb4ced5a55633ae65b2f"
  ],
  "author": {
    "name": "Julia Lawall",
    "email": "julia@diku.dk",
    "time": "Wed Mar 23 16:42:56 2011 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Wed Mar 23 19:46:39 2011 -0700"
  },
  "message": "drivers/tty/bfin_jtag_comm.c: avoid calling put_tty_driver on NULL\n\nput_tty_driver calls tty_driver_kref_put on its argument, and then\ntty_driver_kref_put calls kref_put on the address of a field of this\nargument.  kref_put checks for NULL, but in this case the field is likely\nto have some offset and so the result of taking its address will not be\nNULL.  Labels are added to be able to skip over the call to put_tty_driver\nwhen the argument will be NULL.\n\nThe semantic match that finds this problem is as follows:\n(http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@@\nexpression *x;\n@@\n\n*if (x \u003d\u003d NULL)\n{ ...\n* put_tty_driver(x);\n  ...\n  return ...;\n}\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: Torben Hohn \u003ctorbenh@gmx.de\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": "16402445f2b237303589ede6d768753bb08c6166",
      "old_mode": 33188,
      "old_path": "drivers/tty/bfin_jtag_comm.c",
      "new_id": "03c285bb2f182681c9038a3d535ad3962b733d30",
      "new_mode": 33188,
      "new_path": "drivers/tty/bfin_jtag_comm.c"
    }
  ]
}
