Поделиться через


C28718

предупреждение C28718: ненататированный буфер

Это предупреждение сообщается, когда буфер, передаваемый в функцию или возвращаемый функцией, не имеет заметок языка заметок исходного кода (SAL). Средства статического анализа могут использовать такие заметки для обнаружения переполнения буфера. Сведения о добавлении заметок см. в разделе Использование заметок SAL для уменьшения дефектов кода C/C++.

В настоящее время с этим предупреждением диагностируются только неконстантные строковые буферы. В идеале все буферы, передаваемые в качестве параметров функции или возвращаемые функциями, должны быть аннотированы. Массивы wchar_t или char являются кандидатами на это предупреждение. В настоящее время неподписанные chars не являются.

Пример

В следующем примере кода создается это предупреждение.

int foo( LPTSTR buffer, size_t cch );  

Следующий пример кода избегает этого предупреждения.

int foo( _Out_writes_(cch) LPTSTR buffer, size_t cch );

использование заметок SAL для уменьшения дефектов кода C/C++