Robert Reif : winmm: Check waveOutGetVolume parameter.

Alexandre Julliard julliard at wine.codeweavers.com
Tue May 9 05:56:26 CDT 2006


Module: wine
Branch: refs/heads/master
Commit: a9bd81be63c2ceaae949123a13652febeb376019
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=a9bd81be63c2ceaae949123a13652febeb376019

Author: Robert Reif <reif at earthlink.net>
Date:   Mon May  8 20:51:23 2006 -0400

winmm: Check waveOutGetVolume parameter.

---

 dlls/winmm/tests/wave.c |    3 +++
 dlls/winmm/winmm.c      |    7 ++++++-
 2 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/dlls/winmm/tests/wave.c b/dlls/winmm/tests/wave.c
index a41b9b0..a51fa37 100644
--- a/dlls/winmm/tests/wave.c
+++ b/dlls/winmm/tests/wave.c
@@ -640,6 +640,9 @@ static void wave_out_test_deviceOut(int 
     frag.dwFlags=0;
     frag.dwLoops=0;
 
+    rc=waveOutGetVolume(wout,0);
+    ok(rc==MMSYSERR_INVALPARAM,"waveOutGetVolume(%s,0) expected "
+       "MMSYSERR_INVALPARAM, got %s\n", dev_name(device),wave_out_error(rc));
     rc=waveOutGetVolume(wout,&volume);
     ok(has_volume ? rc==MMSYSERR_NOERROR : rc==MMSYSERR_NOTSUPPORTED,
        "waveOutGetVolume(%s): rc=%s\n",dev_name(device),wave_out_error(rc));
diff --git a/dlls/winmm/winmm.c b/dlls/winmm/winmm.c
index 6b9ccb6..9a4a548 100644
--- a/dlls/winmm/winmm.c
+++ b/dlls/winmm/winmm.c
@@ -2425,7 +2425,12 @@ UINT WINAPI waveOutGetVolume(HWAVEOUT hW
 
     TRACE("(%p, %08lx);\n", hWaveOut, (DWORD)lpdw);
 
-     if ((wmld = MMDRV_Get(hWaveOut, MMDRV_WAVEOUT, TRUE)) == NULL)
+    if (lpdw == NULL) {
+        WARN("invalid parameter\n");
+        return MMSYSERR_INVALPARAM;
+    }
+
+    if ((wmld = MMDRV_Get(hWaveOut, MMDRV_WAVEOUT, TRUE)) == NULL)
         return MMSYSERR_INVALHANDLE;
 
     return MMDRV_Message(wmld, WODM_GETVOLUME, (DWORD_PTR)lpdw, 0L, TRUE);




More information about the wine-cvs mailing list