and use that later. Otherwise, errno itself could be clobbered before used.
if (newmode != (file_stats.st_mode & CHMOD_MODE_BITS))
{
int fail = chmod (file, newmode);
+ int saved_errno = errno;
if (verbosity == V_high || (verbosity == V_changes_only && !fail))
describe_change (file, newmode, (fail ? CH_FAILED : CH_SUCCEEDED));
if (fail)
{
if (force_silent == 0)
- error (0, errno, "%s", file);
+ error (0, saved_errno, "%s", file);
errors = 1;
}
}