(change_file_owner): Save errno from a possibly failed chown,
authorJim Meyering <jim@meyering.net>
Tue, 25 Jul 2000 22:23:05 +0000 (22:23 +0000)
committerJim Meyering <jim@meyering.net>
Tue, 25 Jul 2000 22:23:05 +0000 (22:23 +0000)
and use that later.  Otherwise, errno itself could be clobbered before used.

src/chown.c

index 5998fdf..0b07bc4 100644 (file)
@@ -199,6 +199,7 @@ change_file_owner (int cmdline_arg, const char *file, uid_t user, gid_t group,
        {
          int fail;
          int symlink_changed = 1;
+         int saved_errno;
 
          if (S_ISLNK (file_stats.st_mode) && change_symlinks)
            {
@@ -216,6 +217,7 @@ change_file_owner (int cmdline_arg, const char *file, uid_t user, gid_t group,
            {
              fail = chown (file, newuser, newgroup);
            }
+         saved_errno = errno;
 
          if (verbosity == V_high || (verbosity == V_changes_only && !fail))
            {
@@ -229,7 +231,7 @@ change_file_owner (int cmdline_arg, const char *file, uid_t user, gid_t group,
          if (fail)
            {
              if (force_silent == 0)
-               error (0, errno, "%s", file);
+               error (0, saved_errno, "%s", file);
              errors = 1;
            }
        }