1
0
mirror of https://github.com/wine-mirror/wine synced 2024-06-29 06:14:34 +00:00

iccvid: Reject unsupported output types.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=56698
This commit is contained in:
Alfred Agrell 2024-05-28 18:34:25 +02:00 committed by Alexandre Julliard
parent 66ceeed861
commit 640698e432

View File

@ -797,26 +797,21 @@ static LRESULT ICCVID_DecompressQuery( ICCVID_Info *info, LPBITMAPINFO in, LPBIT
if( in->bmiHeader.biWidth != out->bmiHeader.biWidth )
return ICERR_BADFORMAT;
switch( out->bmiHeader.biBitCount )
switch( out->bmiHeader.biCompression )
{
case 16:
if ( out->bmiHeader.biCompression == BI_BITFIELDS )
{
if ( !ICCVID_CheckMask(out->bmiColors, 0x7C00, 0x03E0, 0x001F) &&
!ICCVID_CheckMask(out->bmiColors, 0xF800, 0x07E0, 0x001F) )
{
TRACE("unsupported output bit field(s) for 16-bit colors\n");
return ICERR_BADFORMAT;
}
}
case BI_RGB:
if ( out->bmiHeader.biBitCount == 16 || out->bmiHeader.biBitCount == 24 || out->bmiHeader.biBitCount == 32 )
return ICERR_OK;
break;
case 24:
case 32:
case BI_BITFIELDS:
if ( out->bmiHeader.biBitCount == 16 && ICCVID_CheckMask(out->bmiColors, 0x7C00, 0x03E0, 0x001F) )
return ICERR_OK;
if ( out->bmiHeader.biBitCount == 16 && ICCVID_CheckMask(out->bmiColors, 0xF800, 0x07E0, 0x001F) )
return ICERR_OK;
break;
default:
TRACE("unsupported output bitcount = %d\n", out->bmiHeader.biBitCount );
return ICERR_BADFORMAT;
}
TRACE("unsupported output format\n");
return ICERR_BADFORMAT;
}
return ICERR_OK;