)]}'
{
  "commit": "e85188f424c8eec7f311deed9a70bec57aeed741",
  "tree": "3456260b54bc8fd8d336d5e8865104480d5ac0fe",
  "parents": [
    "b87ce6e4187c24b06483c8266822ce5e6b7fa7f3"
  ],
  "author": {
    "name": "Eric Paris",
    "email": "eparis@redhat.com",
    "time": "Thu Jun 11 14:31:34 2009 -0400"
  },
  "committer": {
    "name": "Al Viro",
    "email": "viro@zeniv.linux.org.uk",
    "time": "Tue Jun 23 23:50:36 2009 -0400"
  },
  "message": "Audit: dereferencing krule as if it were an audit_watch\n\naudit_update_watch() runs all of the rules for a given watch and duplicates\nthem, attaches a new watch to them, and then when it finishes that process\nand has called free on all of the old rules (ok maybe still inside the rcu\ngrace period) it proceeds to use the last element from list_for_each_entry_safe()\nas if it were a krule rather than being the audit_watch which was anchoring\nthe list to output a message about audit rules changing.\n\nThis patch unfies the audit message from two different places into a helper\nfunction and calls it from the correct location in audit_update_rules().  We\nwill now get an audit message about the config changing for each rule (with\neach rules filterkey) rather than the previous garbage.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "19c0a0a2cede373d8c5cbf08278dce802c7844e7",
      "old_mode": 33188,
      "old_path": "kernel/auditfilter.c",
      "new_id": "e7466dd145c9680c97855a61d60f0b02b8909d60",
      "new_mode": 33188,
      "new_path": "kernel/auditfilter.c"
    }
  ]
}
