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

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

 



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

+
+    if (pid) { /* parent */
+        if (virPidWait(pid,&status)<  0) {
+            /* virPidWait() already
+             * reported error */
+                return -1;
+        }
+
+        return -(status&  0xFF);

Per the method docs, I think this has to be:

errno = status;
return -1;

+    }
+
+    /* child.
+     * Return positive value here. Parent
+     * will change it to negative one. */
+
+    if (forkRet<  0) {
+        ret = 1;

ret = errno;

+        goto childerror;
+    }
+
+    if (virSetUIDGID(uid, gid)<  0) {
+        ret = 1;

ret = errno;

+        goto childerror;
+    }
+
+    if (access(path, mode)<  0)
+        ret = 1;

ret = errno;

+
+childerror:
+    if ((ret&  0xFF) != ret) {
+        VIR_WARN("unable to pass desired return value %d", ret);
+        ret = 0xFF;
+    }
+
+    _exit(ret);

That way, your exit status is 0 on success, and an errno value on error.

ACK - I'm comfortable with you making those changes and pushing, without having to see v7.

--
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]