1
0
mirror of https://github.com/Kitware/CMake.git synced 2025-10-19 02:17:27 +08:00

cmMakefileTargetGenerator: Check for null before using a pointer

Fix the order of logic added by commit 7740ccd1a4 (ENH: some cleanup of
the makefile generator, 2006-02-14, v2.4.0~517) to check for allocation
failure ('new' returns null) before using the pointer.

Issue: #19610
This commit is contained in:
Brad King
2019-08-22 10:51:12 -04:00
parent a7aade8419
commit a8ca5aea94

View File

@@ -131,10 +131,10 @@ void cmMakefileTargetGenerator::CreateRuleFile()
this->BuildFileStream = this->BuildFileStream =
new cmGeneratedFileStream(this->BuildFileNameFull, false, new cmGeneratedFileStream(this->BuildFileNameFull, false,
this->GlobalGenerator->GetMakefileEncoding()); this->GlobalGenerator->GetMakefileEncoding());
this->BuildFileStream->SetCopyIfDifferent(true);
if (!this->BuildFileStream) { if (!this->BuildFileStream) {
return; return;
} }
this->BuildFileStream->SetCopyIfDifferent(true);
this->LocalGenerator->WriteDisclaimer(*this->BuildFileStream); this->LocalGenerator->WriteDisclaimer(*this->BuildFileStream);
if (this->GlobalGenerator->AllowDeleteOnError()) { if (this->GlobalGenerator->AllowDeleteOnError()) {
std::vector<std::string> no_depends; std::vector<std::string> no_depends;
@@ -300,10 +300,10 @@ void cmMakefileTargetGenerator::WriteCommonCodeRules()
this->FlagFileStream = this->FlagFileStream =
new cmGeneratedFileStream(this->FlagFileNameFull, false, new cmGeneratedFileStream(this->FlagFileNameFull, false,
this->GlobalGenerator->GetMakefileEncoding()); this->GlobalGenerator->GetMakefileEncoding());
this->FlagFileStream->SetCopyIfDifferent(true);
if (!this->FlagFileStream) { if (!this->FlagFileStream) {
return; return;
} }
this->FlagFileStream->SetCopyIfDifferent(true);
this->LocalGenerator->WriteDisclaimer(*this->FlagFileStream); this->LocalGenerator->WriteDisclaimer(*this->FlagFileStream);
// Include the flags for the target. // Include the flags for the target.
@@ -1033,10 +1033,10 @@ void cmMakefileTargetGenerator::WriteTargetDependRules()
this->InfoFileNameFull = this->InfoFileNameFull =
this->LocalGenerator->ConvertToFullPath(this->InfoFileNameFull); this->LocalGenerator->ConvertToFullPath(this->InfoFileNameFull);
this->InfoFileStream = new cmGeneratedFileStream(this->InfoFileNameFull); this->InfoFileStream = new cmGeneratedFileStream(this->InfoFileNameFull);
this->InfoFileStream->SetCopyIfDifferent(true); if (!this->InfoFileStream) {
if (!*this->InfoFileStream) {
return; return;
} }
this->InfoFileStream->SetCopyIfDifferent(true);
this->LocalGenerator->WriteDependLanguageInfo(*this->InfoFileStream, this->LocalGenerator->WriteDependLanguageInfo(*this->InfoFileStream,
this->GeneratorTarget); this->GeneratorTarget);