)]}'
{
  "commit": "9fbe88f167fbd039bd637d65ad7034c42e506347",
  "tree": "4e90bce716433e32590a2a1a69a6d5fedc5bf51c",
  "parents": [
    "bb379ad98fc6e94bc592379d8126c9dec01b7ed4"
  ],
  "author": {
    "name": "Darrick J. Wong",
    "email": "djwong@kernel.org",
    "time": "Mon Jun 08 17:15:00 2026 -0700"
  },
  "committer": {
    "name": "Darrick J. Wong",
    "email": "djwong@kernel.org",
    "time": "Wed Jun 10 18:11:54 2026 -0700"
  },
  "message": "libfuse: remove unmount command from the service api\n\nBernd received a complaint via github that the \"unmount\" command in the\nnew fuse service API is prone to malicious symlink creation races\nbecause the umount2 call doesn\u0027t use UMOUNT_NOFOLLOW.  Therefore, if you\ncan trick a fuse service into asking the mount service helper to undo\nthe mount just after you\u0027ve replaced the mount with a symlink to a\nsensitive mount (e.g. /sys) then you whack a system hard.\n\nI don\u0027t know why this unmounting functionality exists in libfuse, and\napparently Bernd doesn\u0027t like it.  Since the fuse service API has not\nyet been released, let\u0027s just rip out the command and pretend it never\nexisted.\n\nFixes: 5d8b9a39a1cb3e (\"mount_service: add systemd socket service mounting helper\")\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0536312dc7120c1746449ddc8362c9868e2067fc",
      "old_mode": 33188,
      "old_path": "include/fuse_service.h",
      "new_id": "d6aedea8f0f83145669e3f70cf8aed282b509ad0",
      "new_mode": 33188,
      "new_path": "include/fuse_service.h"
    },
    {
      "type": "modify",
      "old_id": "cfbc444bf5dcbdd62e3b43676590cba2f757299d",
      "old_mode": 33188,
      "old_path": "include/fuse_service_priv.h",
      "new_id": "988f7c9251c86d66ec0ee563c38bee0a2f215e2a",
      "new_mode": 33188,
      "new_path": "include/fuse_service_priv.h"
    },
    {
      "type": "modify",
      "old_id": "2d7232c3484aea2b9d73ecb5a4525c41f6617e60",
      "old_mode": 33188,
      "old_path": "lib/fuse_service.c",
      "new_id": "b42e6b53f516cb748f3564dbb3528538888aa424",
      "new_mode": 33188,
      "new_path": "lib/fuse_service.c"
    },
    {
      "type": "modify",
      "old_id": "44aef47e351388d4ee2621b25107bd672a7b02a1",
      "old_mode": 33188,
      "old_path": "lib/fuse_service_stub.c",
      "new_id": "668c259891c729c86950eef787363c057aef7149",
      "new_mode": 33188,
      "new_path": "lib/fuse_service_stub.c"
    },
    {
      "type": "modify",
      "old_id": "ab79209008595ac634186db9396d06fd73af802c",
      "old_mode": 33188,
      "old_path": "lib/fuse_versionscript",
      "new_id": "e8dc0066137dde2d335f645c8384e09f36711c2b",
      "new_mode": 33188,
      "new_path": "lib/fuse_versionscript"
    },
    {
      "type": "modify",
      "old_id": "6a6a8b608b7c6e6380aba0cf50ba7a54242fdf64",
      "old_mode": 33188,
      "old_path": "util/mount_service.c",
      "new_id": "d4f57630e4efe2a23667e71b8a175816401b4971",
      "new_mode": 33188,
      "new_path": "util/mount_service.c"
    }
  ]
}
