From 4c4c27a93e5cecb5fd2496b84f1622eea5574dad Mon Sep 17 00:00:00 2001
From: Antonio SJ Musumeci <trapexit@spawn.link>
Date: Mon, 17 Jun 2019 13:37:15 -0400
Subject: [PATCH] set uid & gid when calling ioctl

Turns out certain ioctl calls check the effective user id (FS_IOC_SETFLAGS).
---
 src/fuse_ioctl.cpp | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/fuse_ioctl.cpp b/src/fuse_ioctl.cpp
index bc8f0a11..ef608a62 100644
--- a/src/fuse_ioctl.cpp
+++ b/src/fuse_ioctl.cpp
@@ -107,12 +107,13 @@ namespace l
              void           *data_,
              uint32_t       *out_bufsz_)
   {
-    FileInfo *fi = reinterpret_cast<FileInfo*>(ffi_->fh);
+    FileInfo           *fi     = reinterpret_cast<FileInfo*>(ffi_->fh);
+    const fuse_context *fc     = fuse_get_context();
+    const ugid::Set     ugid(fc->uid,fc->gid);
 
     return l::ioctl(fi->fd,cmd_,data_,out_bufsz_);
   }
 
-
 #ifndef O_NOATIME
 #define O_NOATIME 0
 #endif