Module: wine Branch: refs/heads/master Commit: c13ae562892841a680ee68d965c8deadc47c15b2 URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=c13ae562892841a680ee68d9...
Author: Dmitry Timoshkov dmitry@codeweavers.com Date: Fri Feb 3 12:29:26 2006 +0100
Add a check for icinfo->fccType in DRV_OPEN message handler of builtin video codecs.
---
dlls/iccvid/iccvid.c | 7 +++++++ dlls/msrle32/msrle32.c | 2 ++ dlls/msvidc32/msvideo1.c | 7 +++++++ dlls/msvideo/msvideo_main.c | 2 +- 4 files changed, 17 insertions(+), 1 deletions(-)
diff --git a/dlls/iccvid/iccvid.c b/dlls/iccvid/iccvid.c index 06915d1..ddb0d5b 100644 --- a/dlls/iccvid/iccvid.c +++ b/dlls/iccvid/iccvid.c @@ -961,7 +961,13 @@ LRESULT WINAPI ICCVID_DriverProc( DWORD_ return 0;
case DRV_OPEN: + { + ICINFO *icinfo = (ICINFO *)lParam2; + TRACE("Opened\n"); + + if (icinfo && icinfo->fccType != ICTYPE_VIDEO) return 0; + info = ICCVID_Alloc( sizeof (ICCVID_Info), 1 ); if( info ) { @@ -969,6 +975,7 @@ LRESULT WINAPI ICCVID_DriverProc( DWORD_ info->cvinfo = NULL; } return (LRESULT) info; + }
case ICM_GETINFO: return ICCVID_GetInfo( info, (ICINFO *)lParam1, (DWORD)lParam2 ); diff --git a/dlls/msrle32/msrle32.c b/dlls/msrle32/msrle32.c index 7a4deca..3fb6c62 100644 --- a/dlls/msrle32/msrle32.c +++ b/dlls/msrle32/msrle32.c @@ -1099,6 +1099,8 @@ static CodecInfo* Open(LPICOPEN icinfo) return (LPVOID)0xFFFF0000; }
+ if (icinfo->fccType != ICTYPE_VIDEO) return NULL; + TRACE("(%p = {%lu,0x%08lX(%4.4s),0x%08lX(%4.4s),0x%lX,0x%lX,...})\n", icinfo, icinfo->dwSize, icinfo->fccType, (char*)&icinfo->fccType, icinfo->fccHandler, (char*)&icinfo->fccHandler, diff --git a/dlls/msvidc32/msvideo1.c b/dlls/msvidc32/msvideo1.c index 0a79139..c639d20 100644 --- a/dlls/msvidc32/msvideo1.c +++ b/dlls/msvidc32/msvideo1.c @@ -497,7 +497,13 @@ LRESULT WINAPI CRAM_DriverProc( DWORD_PT break;
case DRV_OPEN: + { + ICINFO *icinfo = (ICINFO *)lParam2; + TRACE("Opened\n"); + + if (icinfo && icinfo->fccType != ICTYPE_VIDEO) return 0; + info = HeapAlloc( GetProcessHeap(), 0, sizeof (Msvideo1Context) ); if( info ) { @@ -506,6 +512,7 @@ LRESULT WINAPI CRAM_DriverProc( DWORD_PT } r = (LRESULT) info; break; + }
case ICM_GETINFO: r = CRAM_GetInfo( info, (ICINFO *)lParam1, (DWORD)lParam2 ); diff --git a/dlls/msvideo/msvideo_main.c b/dlls/msvideo/msvideo_main.c index 3059243..0479210 100644 --- a/dlls/msvideo/msvideo_main.c +++ b/dlls/msvideo/msvideo_main.c @@ -400,7 +400,7 @@ HIC MSVIDEO_OpenFunction(DWORD fccType, icopen.dwSize = sizeof(ICOPEN); icopen.fccType = fccType; icopen.fccHandler = fccHandler; - icopen.dwVersion = 0x00001000; /* FIXME */ + icopen.dwVersion = ICVERSION; icopen.dwFlags = wMode; icopen.dwError = 0; icopen.pV1Reserved = NULL;