VS: Fix out-of-bounds write on empty Nsight Tegra version

In cmVisualStudio10TargetGenerator::cmVisualStudio10TargetGenerator,
wrote 0 to this->NsightTegraVersion[-1] if sscanf returns -1 which is
the case of GetNsightTegraVersion is empty.
This commit is contained in:
Fujii Hironori 2016-08-26 15:28:48 +09:00 committed by Brad King
parent f59513140b
commit 1f4aeb1739
1 changed files with 4 additions and 5 deletions

View File

@ -183,13 +183,12 @@ cmVisualStudio10TargetGenerator::cmVisualStudio10TargetGenerator(
this->GUID = this->GlobalGenerator->GetGUID(this->Name.c_str()); this->GUID = this->GlobalGenerator->GetGUID(this->Name.c_str());
this->Platform = gg->GetPlatformName(); this->Platform = gg->GetPlatformName();
this->NsightTegra = gg->IsNsightTegra(); this->NsightTegra = gg->IsNsightTegra();
for (int i = for (int i = 0; i < 4; ++i) {
sscanf(gg->GetNsightTegraVersion().c_str(), "%u.%u.%u.%u",
&this->NsightTegraVersion[0], &this->NsightTegraVersion[1],
&this->NsightTegraVersion[2], &this->NsightTegraVersion[3]);
i < 4; ++i) {
this->NsightTegraVersion[i] = 0; this->NsightTegraVersion[i] = 0;
} }
sscanf(gg->GetNsightTegraVersion().c_str(), "%u.%u.%u.%u",
&this->NsightTegraVersion[0], &this->NsightTegraVersion[1],
&this->NsightTegraVersion[2], &this->NsightTegraVersion[3]);
this->MSTools = !this->NsightTegra; this->MSTools = !this->NsightTegra;
this->TargetCompileAsWinRT = false; this->TargetCompileAsWinRT = false;
this->BuildFileStream = 0; this->BuildFileStream = 0;