Преглед изворни кода

Merge topic 'depfile-empty'

2c300a4c0a Fix out-of-bounds read on empty gcc-style depfile

Acked-by: Kitware Robot <[email protected]>
Merge-request: !11293
Brad King пре 3 месеци
родитељ
комит
420be50b5e
1 измењених фајлова са 4 додато и 4 уклоњено
  1. 4 4
      Source/cmDependsCompiler.cxx

+ 4 - 4
Source/cmDependsCompiler.cxx

@@ -96,9 +96,9 @@ bool cmDependsCompiler::CheckDependencies(
 
       std::vector<std::string> depends;
       if (format == "custom"_s) {
-        auto deps = cmReadGccDepfile(
+        cm::optional<cmGccDepfileContent> deps = cmReadGccDepfile(
           depFile.c_str(), this->LocalGenerator->GetCurrentBinaryDirectory());
-        if (!deps) {
+        if (!deps || deps->empty()) {
           continue;
         }
 
@@ -130,10 +130,10 @@ bool cmDependsCompiler::CheckDependencies(
             depends.emplace_back(std::move(line));
           }
         } else if (format == "gcc"_s) {
-          auto deps = cmReadGccDepfile(
+          cm::optional<cmGccDepfileContent> deps = cmReadGccDepfile(
             depFile.c_str(), this->LocalGenerator->GetCurrentBinaryDirectory(),
             GccDepfilePrependPaths::Deps);
-          if (!deps) {
+          if (!deps || deps->empty()) {
             continue;
           }