summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2024-02-07 04:38:28 +0100
committerTomas Mraz <tomas@openssl.org>2024-02-08 11:39:29 +0100
commit64cae4064405384cf7fe130a1e0189725db5e877 (patch)
treee25930763604ee8af7ccfb5f1c73bcf71e1eeffc
parentcd9b3e561a2f164d16f37b897f81244dcc9f30bc (diff)
Configure: Fix ordering bug when processing split DEPENDs
Configure was recently made to process this sort of line: DEPEND[generated]=util/perl|OpenSSL/something.pm Unfortunately, in processing such lines, the order in which paths were recomputed caused some resulting paths to be faulty under some circumstances. This change fixes that. Fixes #22853 Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/23500)
-rwxr-xr-xConfigure5
1 files changed, 3 insertions, 2 deletions
diff --git a/Configure b/Configure
index cca1ac8d16..caa69b4f47 100755
--- a/Configure
+++ b/Configure
@@ -2473,10 +2473,11 @@ EOF
&& $f =~ m/^(.*?)\|(.*)$/) {
$i = $1;
$m = $2;
- $i = cleanfile($sourced, $i, $blddir, 1);
- $i2 = cleanfile($buildd, $i, $blddir);
+ # We must be very careful to modify $i last
$d = cleanfile($sourced, "$i/$m", $blddir, 1);
$d2 = cleanfile($buildd, "$i/$m", $blddir);
+ $i2 = cleandir($buildd, $i, $blddir);
+ $i = cleandir($sourced, $i, $blddir, 1);
} else {
$d = cleanfile($sourced, $f, $blddir, 1);
$d2 = cleanfile($buildd, $f, $blddir);