]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
Merge pull request #12437 from poettering/chmod-and-chown-rewrite
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 28 May 2019 13:12:20 +0000 (15:12 +0200)
committerGitHub <noreply@github.com>
Tue, 28 May 2019 13:12:20 +0000 (15:12 +0200)
chmod_and_chown() rewrite

1  2 
src/udev/udev-node.c

diff --combined src/udev/udev-node.c
index 9549a1ba442002bd966c47c985788c551c552b82,67d573cf2b626d69dc0af1e84883ee590c19844c..7d2547857768e0e543e04ddd869af981731abfb0
@@@ -98,7 -98,7 +98,7 @@@ static int node_symlink(sd_device *dev
                  return log_device_error_errno(dev, r, "Failed to create symlink '%s' to '%s': %m", slink_tmp, target);
  
          if (rename(slink_tmp, slink) < 0) {
 -                r = log_device_error_errno(dev, errno, "Failed to rename '%s' to '%s' failed: %m", slink_tmp, slink);
 +                r = log_device_error_errno(dev, errno, "Failed to rename '%s' to '%s': %m", slink_tmp, slink);
                  (void) unlink(slink_tmp);
          }
  
@@@ -310,10 -310,10 +310,10 @@@ static int node_permissions_apply(sd_de
  
                  if ((stats.st_mode & 0777) != (mode & 0777) || stats.st_uid != uid || stats.st_gid != gid) {
                          log_device_debug(dev, "Setting permissions %s, %#o, uid=%u, gid=%u", devnode, mode, uid, gid);
-                         if (chmod(devnode, mode) < 0)
-                                 r = log_device_warning_errno(dev, errno, "Failed to set mode of %s to %#o: %m", devnode, mode);
-                         if (chown(devnode, uid, gid) < 0)
-                                 r = log_device_warning_errno(dev, errno, "Failed to set owner of %s to uid=%u, gid=%u: %m", devnode, uid, gid);
+                         r = chmod_and_chown(devnode, mode, uid, gid);
+                         if (r < 0)
+                                 log_device_warning_errno(dev, r, "Failed to set owner/mode of %s to uid=" UID_FMT ", gid=" GID_FMT ", mode=%#o: %m", devnode, uid, gid, mode);
                  } else
                          log_device_debug(dev, "Preserve permissions of %s, %#o, uid=%u, gid=%u", devnode, mode, uid, gid);