Bagikan melalui


C28718

peringatan C28718: Buffer yang tidak diannotasi

Peringatan ini dilaporkan ketika buffer yang diteruskan ke fungsi atau dikembalikan oleh fungsi tidak memiliki anotasi Bahasa Anotasi Kode Sumber (SAL). Alat analisis statis dapat menggunakan anotasi tersebut untuk mendeteksi overrun buffer. Untuk informasi tentang menambahkan anotasi, lihat Menggunakan Anotasi SAL untuk Mengurangi Cacat Kode C/C++.

Saat ini, hanya buffer string non-konstanta yang didiagnosis dengan peringatan ini. Idealnya, semua buffer yang diteruskan sebagai parameter fungsi atau dikembalikan oleh fungsi harus dianotasi. Array karakter wchar_t atau adalah kandidat untuk peringatan ini. Karakter yang tidak ditandatangani saat ini tidak.

Contoh

Contoh kode berikut menghasilkan peringatan ini.

int foo( LPTSTR buffer, size_t cch );  

Contoh kode berikut menghindari peringatan ini.

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

Menggunakan Anotasi SAL untuk Mengurangi Cacat Kode C/C++