kernel32: Avoid unprotected sprintf on registry/user-supplied format string.
This commit is contained in:
parent
62a2196887
commit
c3b8026789
@ -265,15 +265,16 @@ static BOOL start_debugger(PEXCEPTION_POINTERS epointers, HANDLE hEvent)
|
|||||||
|
|
||||||
if (format)
|
if (format)
|
||||||
{
|
{
|
||||||
cmdline = HeapAlloc(GetProcessHeap(), 0, strlen(format) + 2*20);
|
size_t format_size = strlen(format) + 2*20;
|
||||||
sprintf(cmdline, format, GetCurrentProcessId(), hEvent);
|
cmdline = HeapAlloc(GetProcessHeap(), 0, format_size);
|
||||||
|
snprintf(cmdline, format_size, format, (long)GetCurrentProcessId(), (long)HandleToLong(hEvent));
|
||||||
HeapFree(GetProcessHeap(), 0, format);
|
HeapFree(GetProcessHeap(), 0, format);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
cmdline = HeapAlloc(GetProcessHeap(), 0, 80);
|
cmdline = HeapAlloc(GetProcessHeap(), 0, 80);
|
||||||
sprintf(cmdline, "winedbg --auto %d %ld",
|
snprintf(cmdline, 80, "winedbg --auto %ld %ld", /* as in tools/wine.inf */
|
||||||
GetCurrentProcessId(), (ULONG_PTR)hEvent);
|
(long)GetCurrentProcessId(), (long)HandleToLong(hEvent));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!bAuto)
|
if (!bAuto)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user