Ensure `$(MAKE)` commands and `CFLAGS` are appropriately quoted in the Makefile.
authorHamilton Chapman <hamchapman@gmail.com>
Wed, 21 Feb 2024 13:47:19 +0000 (13:47 +0000)
committerTomas Mraz <tomas@openssl.org>
Sun, 25 Feb 2024 07:57:16 +0000 (08:57 +0100)
If a user's `make` command came from a path that contained a space then both the
`$(MAKE)` variable (and parts of the generated `CFLAGS`, when building for iOS)
would not be properly quoted and the build would fail.

Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23663)

Configurations/15-ios.conf
Configurations/unix-Makefile.tmpl

index e2b27b277b1fce77f1866eaf9f98bb4dfdbbd73f..478f30f47e7f1701eebff433b32483c2171d3337 100644 (file)
@@ -74,16 +74,16 @@ my %targets = (
 #
     "iphoneos-cross" => {
         inherit_from     => [ "ios-common" ],
-        cflags           => add("-isysroot \$(CROSS_TOP)/SDKs/\$(CROSS_SDK) -fno-common"),
+        cflags           => add("-isysroot \"\$(CROSS_TOP)/SDKs/\$(CROSS_SDK)\" -fno-common"),
     },
     "ios-cross" => {
         inherit_from     => [ "ios-xcrun" ],
         CC               => "cc",
-        cflags           => add("-isysroot \$(CROSS_TOP)/SDKs/\$(CROSS_SDK)"),
+        cflags           => add("-isysroot \"\$(CROSS_TOP)/SDKs/\$(CROSS_SDK)\""),
     },
     "ios64-cross" => {
         inherit_from     => [ "ios64-xcrun" ],
         CC               => "cc",
-        cflags           => add("-isysroot \$(CROSS_TOP)/SDKs/\$(CROSS_SDK)"),
+        cflags           => add("-isysroot \"\$(CROSS_TOP)/SDKs/\$(CROSS_SDK)\""),
     },
 );
index 25c713e952c48a0923710208ec3ab478e1ba5f9f..4c24cae7ab62ee9e0e16b8a66b71fdf24dd5d488 100644 (file)
@@ -27,7 +27,7 @@
          my $target = shift;
          my $help = shift;
 
-         return "$target: build_generated ## $help\n\t\$(MAKE) depend && \$(MAKE) _$target\n_$target";
+         return "$target: build_generated ## $help\n\t\"\$(MAKE)\" depend && \"\$(MAKE)\" _$target\n_$target";
      }
 
      our $COLUMNS = $ENV{COLUMNS};
@@ -565,7 +565,7 @@ help: ## Show this help screen
 ##@ Testing
 test: tests ## Run tests (alias of "tests")
 {- dependmagic('tests', 'Run tests'); -}: build_programs_nodep build_modules_nodep link-utils
-       $(MAKE) run_tests
+       "$(MAKE)" run_tests
 run_tests: FORCE
        @ : {- output_off() if $disabled{tests}; "" -}
        ( SRCTOP=$(SRCDIR) \
@@ -580,7 +580,7 @@ run_tests: FORCE
 
 list-tests: ## List available tests that can be invoked via "make test TESTS=<name>"
        @ : {- output_off() if $disabled{tests}; "" -}
-       $(MAKE) run_tests TESTS=list
+       "$(MAKE)" run_tests TESTS=list
        @ : {- if ($disabled{tests}) { output_on(); } else { output_off(); } "" -}
        @echo "Tests are not supported with your chosen Configure options"
        @ : {- output_on() if !$disabled{tests}; "" -}
@@ -1255,12 +1255,12 @@ providers/fips.module.sources.new: configdata.pm
          cd sources-tmp \
          && $$srcdir/Configure --banner=Configured enable-fips -O0 \
          && ./configdata.pm --query 'get_sources("providers/fips")' > sources1 \
-         && $(MAKE) -sj 4 build_generated providers/fips.so \
+         && "$(MAKE)" -sj 4 build_generated providers/fips.so \
          && find . -name '*.d' | xargs cat > dep1 \
-          && $(MAKE) distclean \
+          && "$(MAKE)" distclean \
          && $$srcdir/Configure --banner=Configured enable-fips no-asm -O0 \
          && ./configdata.pm --query 'get_sources("providers/fips")' > sources2 \
-         && $(MAKE) -sj 4 build_generated providers/fips.so \
+         && "$(MAKE)" -sj 4 build_generated providers/fips.so \
          && find . -name '*.d' | xargs cat > dep2 \
          && cat sources1 sources2 \
             | grep -v ' : \\$$' | grep -v util/providers.num \
@@ -1405,7 +1405,7 @@ ordinals: build_generated
                 $(SSLHEADERS)
 
 test_ordinals:
-       $(MAKE) run_tests TESTS=test_ordinals
+       "$(MAKE)" run_tests TESTS=test_ordinals
 
 tags TAGS: FORCE
        rm -f TAGS tags