mirror of
https://github.com/openssl/openssl.git
synced 2024-11-27 05:21:51 +08:00
Print correct error message in utils/mkdir-p.pl
Commit 70a56b9147
introduced a regression.
If utils/mkdir-p.pl fails to create a target dir because of insufficient file system
permissions, the subsequent test for dir existence always fails and overwrites
the system error. As a result, a user is presented with a misleading error message.
E.g. if a user tries to create a dir under /usr/local and does not have permissions
for it, the reported error message is "Cannot create directory /usr/local/lib: No such file or directory",
whereas the expected error message is "Cannot create directory /usr/local/lib: Permission denied".
This commit introduces a fix by declaring an additional local variable to cache
the original error message from mkdir. If -d check fails and overwrites the system
error, the user is still presented with the original error from mkdir.
CLA: Trivial
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/14487)
This commit is contained in:
parent
1368f0cdf5
commit
af2e1e9c81
@ -34,11 +34,12 @@ sub do_mkdir_p {
|
||||
}
|
||||
|
||||
unless (mkdir($dir, 0777)) {
|
||||
local($err) = $!;
|
||||
if (-d $dir) {
|
||||
# We raced against another instance doing the same thing.
|
||||
return;
|
||||
}
|
||||
die "Cannot create directory $dir: $!\n";
|
||||
die "Cannot create directory $dir: $err\n";
|
||||
}
|
||||
print "created directory `$dir'\n";
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user