Rearrange util/fusermount.c umount_fuse_locked() so that
authorNorman Wilson <norman@teach.cs.toronto.edu>
Mon, 12 Aug 2024 18:16:30 +0000 (14:16 -0400)
committerBernd Schubert <bernd.schubert@fastmail.fm>
Wed, 21 Aug 2024 21:58:25 +0000 (23:58 +0200)
commitc9bf7d3e20ec5c86dd590f695b92e65142491d0e
treecc59f1349331126ad505d3ae573f4bf0e4242d7e
parent0750b4a194019c991d1c8a7f5e59fb5f4be50e3c
Rearrange util/fusermount.c umount_fuse_locked() so that
umount2 is called with privs dropped, not raised.  This
works around a clash with NFS permissions: if FUSE mounted
on NFS client directory with root_squash in effect, and
some directory in the path leading to the mount point denies
permissions to others, umount2 will fail because userid 0
cannot search it.  Since drop_privs merely sets the file-
system user- and group-ID without changing the CAP_SYS_ADMIN
capability needed to unmount a file system (which fusermount
has because it is set-user-ID root), umount2 works fine.
util/fusermount.c