Module: wine Branch: master Commit: 258d42982cf526b3d9c59ccb522b27db3f519541 URL: http://source.winehq.org/git/wine.git/?a=commit;h=258d42982cf526b3d9c59ccb52...
Author: Eric Pouech eric.pouech@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);