target cannot be `stat'ed, use the errno from the failed mkdir call,
not the one from the stat call. Before this change, running
`mkdir -p /no-dir/no-dir' as an unprivileged user would wrongly
elicit `No such file or directory' instead of `Permission denied'.
if (!created_dir)
{
struct stat stats;
+ int saved_errno = errno;
/* The mkdir and stat calls below may appear to be reversed.
They are not. It is important to call mkdir first and then to
if (stat (dir, &stats))
{
- error (0, errno, _("cannot create directory `%s'"), dirpath);
+ error (0, saved_errno, _("cannot create directory `%s'"), dirpath);
fail = 1;
}
else if (!S_ISDIR (stats.st_mode))