mirror of
https://github.com/SFML/SFML.git
synced 2024-11-25 04:41:05 +08:00
Fixed potential buffer overrun in Win32 OpenGL error handling
This fixes issue #1245.
This commit is contained in:
parent
bf92efe9a4
commit
0980e90ee4
@ -66,13 +66,17 @@ void ensureExtensionsInit(HDC deviceContext)
|
||||
////////////////////////////////////////////////////////////
|
||||
String getErrorString(DWORD errorCode)
|
||||
{
|
||||
std::basic_ostringstream<TCHAR, std::char_traits<TCHAR> > ss;
|
||||
TCHAR errBuff[256];
|
||||
FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, errorCode, 0, errBuff, sizeof(errBuff), NULL);
|
||||
ss << errBuff;
|
||||
String errMsg(ss.str());
|
||||
|
||||
PTCHAR buffer;
|
||||
if (FormatMessage(FORMAT_MESSAGE_MAX_WIDTH_MASK | FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, errorCode, 0, reinterpret_cast<LPTSTR>(&buffer), 256, NULL) != 0)
|
||||
{
|
||||
String errMsg(buffer);
|
||||
LocalFree(buffer);
|
||||
return errMsg;
|
||||
}
|
||||
|
||||
std::ostringstream ss;
|
||||
ss << "Error " << errorCode;
|
||||
return String(ss.str());
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user