)]}'
{
  "commit": "cac36f707119b792b2396aed371d6b5cdc194890",
  "tree": "ccb19a68ce1c1aa066d6d13dde51657cba906de6",
  "parents": [
    "33eaf788345c0311ab48ae62673c05f59fb09bb3"
  ],
  "author": {
    "name": "Jeff Mahoney",
    "email": "jeffm@suse.com",
    "time": "Fri Apr 23 13:17:37 2010 -0400"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Sat Apr 24 11:31:24 2010 -0700"
  },
  "message": "reiserfs: fix permissions on .reiserfs_priv\n\nCommit 677c9b2e393a0cd203bd54e9c18b012b2c73305a (\"reiserfs: remove\nprivroot hiding in lookup\") removed the magic from the lookup code to hide\nthe .reiserfs_priv directory since it was getting loaded at mount-time\ninstead.  The intent was that the entry would be hidden from the user via\na poisoned d_compare, but this was faulty.\n\nThis introduced a security issue where unprivileged users could access and\nmodify extended attributes or ACLs belonging to other users, including\nroot.\n\nThis patch resolves the issue by properly hiding .reiserfs_priv.  This was\nthe intent of the xattr poisoning code, but it appears to have never\nworked as expected.  This is fixed by using d_revalidate instead of\nd_compare.\n\nThis patch makes -oexpose_privroot a no-op.  I\u0027m fine leaving it this way.\nThe effort involved in working out the corner cases wrt permissions and\ncaching outweigh the benefit of the feature.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nAcked-by: Edward Shishkin \u003cedward.shishkin@gmail.com\u003e\nReported-by: Matt McCutchen \u003cmatt@mattmccutchen.net\u003e\nTested-by: Matt McCutchen \u003cmatt@mattmccutchen.net\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: \u003cstable@kernel.org\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": "f8a6075abf50c6bd83f245b1532b4c5352370a77",
      "old_mode": 33188,
      "old_path": "fs/reiserfs/dir.c",
      "new_id": "07930449a9583ebee29e5781c3e4dbf9f609aa6f",
      "new_mode": 33188,
      "new_path": "fs/reiserfs/dir.c"
    },
    {
      "type": "modify",
      "old_id": "4f9586bb7631e7e2be77e70d34c9e7248c1af418",
      "old_mode": 33188,
      "old_path": "fs/reiserfs/xattr.c",
      "new_id": "28f0a448f3c7eeb62139740f25c65e3e60cf2a94",
      "new_mode": 33188,
      "new_path": "fs/reiserfs/xattr.c"
    }
  ]
}
