瀏覽代碼

cmake: Stop processing if -P option lacks file name

While an error message was being logged, processing was
continuing nonetheless except with the -P argument omitted.
This could have allowed unintended effects if the remaining
arguments formed a valid set of command line options.
Craig Scott 6 年之前
父節點
當前提交
a1adbc7243
共有 1 個文件被更改,包括 5 次插入5 次删除
  1. 5 5
      Source/cmakemain.cxx

+ 5 - 5
Source/cmakemain.cxx

@@ -285,12 +285,12 @@ int do_cmake(int ac, char const* const* av)
     } else if (cmHasLiteralPrefix(av[i], "-P")) {
     } else if (cmHasLiteralPrefix(av[i], "-P")) {
       if (i == ac - 1) {
       if (i == ac - 1) {
         cmSystemTools::Error("No script specified for argument -P");
         cmSystemTools::Error("No script specified for argument -P");
-      } else {
-        workingMode = cmake::SCRIPT_MODE;
-        args.push_back(av[i]);
-        i++;
-        args.push_back(av[i]);
+        return 1;
       }
       }
+      workingMode = cmake::SCRIPT_MODE;
+      args.push_back(av[i]);
+      i++;
+      args.push_back(av[i]);
     } else if (cmHasLiteralPrefix(av[i], "--find-package")) {
     } else if (cmHasLiteralPrefix(av[i], "--find-package")) {
       workingMode = cmake::FIND_PACKAGE_MODE;
       workingMode = cmake::FIND_PACKAGE_MODE;
       args.push_back(av[i]);
       args.push_back(av[i]);