mirror of
https://github.com/openssl/openssl.git
synced 2025-04-06 20:20:50 +08:00
Print correct error message in utils/mkdir-p.pl
Commit 70a56b914772e6b21cda2a5742817ae4bb7290f1 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…
x
Reference in New Issue
Block a user