diff mbox series

btrfs-progs: subv del: hide a bogus warning on an unprivileged delete

Message ID 20220124133632.62597-1-kilobyte@angband.pl (mailing list archive)
State New, archived
Headers show
Series btrfs-progs: subv del: hide a bogus warning on an unprivileged delete | expand

Commit Message

Adam Borowski Jan. 24, 2022, 1:36 p.m. UTC
Checking the default subvolume uses TREE_SEARCH which is a CAP_SYS_ADMIN
only operation, and thus will fail when unprivileged, even if we have
permissions to actually delete the subvolume.

This produces a warning even if all is ok.  Let's hide it if we're not
root (root but !CAP is odd enough to warn).

Fixes 87804a3f0663a4d1891395bd97b8e81e6f183e66
Ref: https://bugs.debian.org/998840
Signed-off-by: Adam Borowski <kilobyte@angband.pl>
---
 cmds/subvolume.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

David Sterba Feb. 1, 2022, 5:19 p.m. UTC | #1
On Mon, Jan 24, 2022 at 02:36:32PM +0100, Adam Borowski wrote:
> Checking the default subvolume uses TREE_SEARCH which is a CAP_SYS_ADMIN
> only operation, and thus will fail when unprivileged, even if we have
> permissions to actually delete the subvolume.
> 
> This produces a warning even if all is ok.  Let's hide it if we're not
> root (root but !CAP is odd enough to warn).
> 
> Fixes 87804a3f0663a4d1891395bd97b8e81e6f183e66
> Ref: https://bugs.debian.org/998840
> Signed-off-by: Adam Borowski <kilobyte@angband.pl>

Thanks, added to devel, that covers the part when the search fails. It
could also fail when the default subvolume is not set so I might add a
separate check for that.
diff mbox series

Patch

diff --git a/cmds/subvolume.c b/cmds/subvolume.c
index 6aac7dd1..e767e20d 100644
--- a/cmds/subvolume.c
+++ b/cmds/subvolume.c
@@ -376,7 +376,8 @@  again:
 
 	err = btrfs_util_get_default_subvolume_fd(fd, &default_subvol_id);
 	if (err) {
-		warning("cannot read default subvolume id: %m");
+		if (!geteuid())
+			warning("cannot read default subvolume id: %m");
 		default_subvol_id = 0;
 	}