Eric Pouech : winmm: Only compute dwFileSize for MMIO objects with a DOS ioproc.
Module: wine Branch: master Commit: 258d42982cf526b3d9c59ccb522b27db3f519541 URL: http://source.winehq.org/git/wine.git/?a=commit;h=258d42982cf526b3d9c59ccb52... Author: Eric Pouech <eric.pouech(a)orange.fr> Date: Sun Jun 13 15:41:01 2010 +0200 winmm: Only compute dwFileSize for MMIO objects with a DOS ioproc. --- dlls/winmm/mmio.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-) diff --git a/dlls/winmm/mmio.c b/dlls/winmm/mmio.c index 75439a4..f13e090 100644 --- a/dlls/winmm/mmio.c +++ b/dlls/winmm/mmio.c @@ -667,7 +667,13 @@ static HMMIO MMIO_Open(LPSTR szFileName, MMIOINFO* refmminfo, DWORD dwOpenFlags, (LPARAM)szFileName, 0, FALSE); /* grab file size, when possible */ - if ((pos = _llseek((HFILE)wm->info.adwInfo[0], 0, SEEK_CUR)) != -1) + /* FIXME: the code around dwFileSize is: + * - probably broken + * - needs to be tested when the app installs its own IOproc + * - likely to be removed + * So, restrict dwFileSize usage to DOS ioprocs + */ + if (wm->info.fccIOProc == FOURCC_DOS && (pos = _llseek((HFILE)wm->info.adwInfo[0], 0, SEEK_CUR)) != -1) { wm->dwFileSize = _llseek((HFILE)wm->info.adwInfo[0], 0, SEEK_END); _llseek((HFILE)wm->info.adwInfo[0], pos, SEEK_SET);
participants (1)
-
Alexandre Julliard