Commit c7d33e1d authored by Dmitry Timoshkov's avatar Dmitry Timoshkov Committed by Alexandre Julliard

gdi32: Add support for 16-bit QUERYESCSUPPORT queries.

parent 7b330516
......@@ -1101,9 +1101,11 @@ INT WINAPI Escape( HDC hdc, INT escape, INT in_count, LPCSTR in_data, LPVOID out
case QUERYESCSUPPORT:
{
const INT *ptr = (const INT *)in_data;
if (in_count < sizeof(INT)) return 0;
switch(*ptr)
DWORD code;
if (in_count < sizeof(SHORT)) return 0;
code = (in_count < sizeof(DWORD)) ? *(const USHORT *)in_data : *(const DWORD *)in_data;
switch (code)
{
case ABORTDOC:
case ENDDOC:
......
......@@ -66,15 +66,18 @@ INT PSDRV_ExtEscape( PHYSDEV dev, INT nEscape, INT cbInput, LPCVOID in_data,
{
PSDRV_PDEVICE *physDev = get_psdrv_dev( dev );
TRACE("%p,%d,%d,%p,%d,%p\n",
dev->hdc, nEscape, cbInput, in_data, cbOutput, out_data);
switch(nEscape)
{
case QUERYESCSUPPORT:
if(cbInput < sizeof(INT))
if(cbInput < sizeof(SHORT))
{
WARN("cbInput < sizeof(INT) (=%d) for QUERYESCSUPPORT\n", cbInput);
WARN("cbInput < sizeof(SHORT) (=%d) for QUERYESCSUPPORT\n", cbInput);
return 0;
} else {
UINT num = *(const UINT *)in_data;
DWORD num = (cbInput < sizeof(DWORD)) ? *(const USHORT *)in_data : *(const DWORD *)in_data;
TRACE("QUERYESCSUPPORT for %d\n", num);
switch(num) {
......
......@@ -316,7 +316,7 @@ static INT X11DRV_ExtEscape( PHYSDEV dev, INT escape, INT in_count, LPCVOID in_d
switch(escape)
{
case QUERYESCSUPPORT:
if (in_data)
if (in_data && in_count >= sizeof(DWORD))
{
switch (*(const INT *)in_data)
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment