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);
} 

راجع أيضًا:

المرجع

sizeof Operator

The sizeof Operator