Re: [PATCH v4 2/5] util: Create virFileAccessibleAs function

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 10/20/2011 08:52 AM, Michal Privoznik wrote:
This function checks if a given path is accessible under
given uid and gid.
---
  src/util/util.c |   78 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
  src/util/util.h |    3 ++
  2 files changed, 81 insertions(+), 0 deletions(-)

diff --git a/src/util/util.c b/src/util/util.c
index 01146f5..2020415 100644
--- a/src/util/util.c
+++ b/src/util/util.c
@@ -671,6 +671,72 @@ virFileIsExecutable(const char *file)
  }

  #ifndef WIN32
+/* Check that a file is accessible under certain
+ * user&  gid.
+ * @mode can be R_OK, W_OK, X_OK or F_OK.

More accurately:

@mode can be F_OK, or a bitwise combination of R_OK, W_OK, and X_OK.

+ * see 'man accesss' for more details.

s/accesss/access/

+ * Returns 0 on success, -errno on fail,
+ *>0 on signaled child.
+ */
+int
+virFileAccessibleAs(const char *path, int mode,
+                    uid_t uid, gid_t gid)
+{
+    pid_t pid;
+    int waitret, status, ret = 0;
+    int forkRet;
+
+    forkRet = virFork(&pid);

Should you take a shortcut that if uid and gid match geteuid()/getegid(), then we avoid the fork()?

--
Eric Blake   eblake@xxxxxxxxxx    +1-801-349-2682
Libvirt virtualization library http://libvirt.org

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list


[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]