C6327
تحذير C6327: تجاوز سعة احتياطي المحتملة: النسخ SysAllocStringLen <رقم> حرفاً من السلسلة <متغير> دون التحقق من عدد حرف/ حروف إلى النسخة. قد يحدث عطل بالتعليمات البرمجية
وهذا تحذير تشير تجاوز سعة المخزن مؤقت محتملة. قم بتخصيص سلسلة SysAllocStringLen وثم ينسخ المحدد عدد حرف/ حروف من السلسلة المحددة. لأن SysAllocStringLen لا يتحقق من صحة عدد حرف/ حروف لنسخ، في حالة تحديد عدد حرف/ حروف هو بقعة صغيرة من العدد حرف/ حروف في السلسلة، قد تعطل التعليمة البرمجية. فيجب تمرير العدد الصحيح للأحرف إلى الدالة SysAllocString إلى تجنب تجاوز سعة احتياطي.
مثال
نموذج تعليمات برمجية التالي بإنشاء هذا تحذير:
#include <windows.h>
void f ()
{
BSTR bstr;
bstr = SysAllocStringLen(L"txt", 5); // warning 6327
// code...
SysFreeString(bstr);
}
لتصحيح هذا التحذير، قم بتمرير الطول السلسلة الصحيحة كما هو موضح في التالية تعليمات برمجية:
#include <windows.h>
void f()
{
BSTR bstr;
wchar_t *greeting=L"Hello, World!";
bstr = SysAllocStringLen(greeting, sizeof(greeting));
// code...
SysFreeString(bstr);
}