Module: wine Branch: master Commit: 860618622e6d397f270005802557b758256970fe URL: http://source.winehq.org/git/wine.git/?a=commit;h=860618622e6d397f2700058025...
Author: Piotr Caban piotr@codeweavers.com Date: Fri Feb 20 15:42:07 2015 +0100
winmm: Save data that was not yet written in mmioSetInfo.
---
dlls/winmm/mmio.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-)
diff --git a/dlls/winmm/mmio.c b/dlls/winmm/mmio.c index 16532bf..ad73564 100644 --- a/dlls/winmm/mmio.c +++ b/dlls/winmm/mmio.c @@ -949,25 +949,23 @@ MMRESULT WINAPI mmioGetInfo(HMMIO hmmio, MMIOINFO* lpmmioinfo, UINT uFlags) */ MMRESULT WINAPI mmioSetInfo(HMMIO hmmio, const MMIOINFO* lpmmioinfo, UINT uFlags) { - LPWINE_MMIO wm; + LPWINE_MMIO wm;
TRACE("(%p,%p,0x%08x)\n",hmmio,lpmmioinfo,uFlags);
if ((wm = MMIO_Get(hmmio)) == NULL) - return MMSYSERR_INVALHANDLE; + return MMSYSERR_INVALHANDLE;
/* check pointers coherence */ if (lpmmioinfo->pchNext < wm->info.pchBuffer || - lpmmioinfo->pchNext > wm->info.pchBuffer + wm->info.cchBuffer || - lpmmioinfo->pchEndRead < wm->info.pchBuffer || - lpmmioinfo->pchEndRead > wm->info.pchBuffer + wm->info.cchBuffer || - lpmmioinfo->pchEndWrite < wm->info.pchBuffer || - lpmmioinfo->pchEndWrite > wm->info.pchBuffer + wm->info.cchBuffer) - return MMSYSERR_INVALPARAM; - - wm->info.pchNext = lpmmioinfo->pchNext; - wm->info.pchEndRead = lpmmioinfo->pchEndRead; - + lpmmioinfo->pchNext > wm->info.pchBuffer + wm->info.cchBuffer || + lpmmioinfo->pchEndRead < wm->info.pchBuffer || + lpmmioinfo->pchEndRead > wm->info.pchBuffer + wm->info.cchBuffer || + lpmmioinfo->pchEndWrite < wm->info.pchBuffer || + lpmmioinfo->pchEndWrite > wm->info.pchBuffer + wm->info.cchBuffer) + return MMSYSERR_INVALPARAM; + + wm->info = *lpmmioinfo; return MMSYSERR_NOERROR; }