getmodulefilenamew 函数产生误报(缓冲区溢出),因为它接受第二个参数作为缓冲区 - 在我们的例子中是固定大小的。
但查看其文档:http: //msdn.microsoft.com/en-us/library/ms683197%28v=vs.85%29.aspx
Quote: 如果缓冲区太小而无法容纳模块名称,则字符串将被截断为 nSize 个字符,包括终止空字符,函数返回 nSize,并且函数将最后一个错误设置为 ERROR_INSUFFICIENT_BUFFER。
作为受信任的第三方的人可以确认或拒绝这个问题作为误报吗?谢谢你的帮助!
===
HMODULE applicationModule = GetModuleHandleW(NULL);
WCHAR processName[MAX_PATH];
memset(processName, 0, sizeof(processName));
GetModuleFileNameW(applicationModule, processName, sizeof(processName));
===
问题与 GetModuleFileNameW 函数一致
扫描由 Veracode 静态分析器提供。