[PATCH 6/8] virSecurityDACSetOwnershipInternal: Don't overwrite @path argument

Michal Privoznik mprivozn at redhat.com
Thu Jun 17 10:42:06 UTC 2021


As shown in the previous commit, @path can be NULL. However, in
that case @src->path is also NULL. Therefore, trying to "fix"
@path to be not NULL is not going to succeed. The real value of
NULLSTR() is in providing a non-NULL string for error reporting.
Well, that can be done in the error reporting without overwriting
argument.

Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
---
 src/security/security_dac.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/src/security/security_dac.c b/src/security/security_dac.c
index e2a6461375..603d5b98ef 100644
--- a/src/security/security_dac.c
+++ b/src/security/security_dac.c
@@ -679,8 +679,6 @@ virSecurityDACSetOwnershipInternal(const virSecurityDACData *priv,
 
     if (src && priv->chownCallback) {
         rc = priv->chownCallback(src, uid, gid);
-        /* here path is used only for error messages */
-        path = NULLSTR(src->path);
 
         /* on -2 returned an error was already reported */
         if (rc == -2)
@@ -712,20 +710,20 @@ virSecurityDACSetOwnershipInternal(const virSecurityDACData *priv,
         if (errno == EOPNOTSUPP || errno == EINVAL) {
             VIR_INFO("Setting user and group to '%ld:%ld' on '%s' not "
                      "supported by filesystem",
-                     (long)uid, (long)gid, path);
+                     (long)uid, (long)gid, NULLSTR(path));
         } else if (errno == EPERM) {
             VIR_INFO("Setting user and group to '%ld:%ld' on '%s' not "
                      "permitted",
-                     (long)uid, (long)gid, path);
+                     (long)uid, (long)gid, NULLSTR(path));
         } else if (errno == EROFS) {
             VIR_INFO("Setting user and group to '%ld:%ld' on '%s' not "
                      "possible on readonly filesystem",
-                     (long)uid, (long)gid, path);
+                     (long)uid, (long)gid, NULLSTR(path));
         } else {
             virReportSystemError(errno,
                                  _("unable to set user and group to '%ld:%ld' "
                                    "on '%s'"),
-                                 (long)uid, (long)gid, path);
+                                 (long)uid, (long)gid, NULLSTR(path));
             return -1;
         }
     }
-- 
2.31.1




More information about the libvir-list mailing list