Примеры ошибок, обнаруженных с помощью диагностики V1007
V1007. Value from the uninitialized optional is used. It may be an error.
YTsaurus
V1007 [CWE-457] The value from the potentially uninitialized optional 'curBlob' is used. Probably it is a mistake. parallel_file_reader.cpp:241
size_t TParallelFileReader::DoReadWithCallback(void* ptr,
size_t size,
DoReadCallback&& callback)
{
....
std::optional<TBlob> curBlob;
while (curBlob = ReadNextBatch())
{
....
}
if (....)
{
return curIdx;
}
else
{
size_t prevIdx = curIdx - curBlob->Size(); // <=
Y_VERIFY(!BatchTail_);
Y_VERIFY(curBlob.has_value()); // <=
BatchTail_ = curBlob->SubBlob(size - prevIdx, curBlob->Size());
return size;
}
}