Nikolay Sivov : winmm: Initialize reserved fields of data returned by waveOutGetDevCapsA and waveInGetDevCapsA (Coverity).

Alexandre Julliard julliard at wine.codeweavers.com
Fri Nov 20 07:48:47 CST 2015


Module: wine
Branch: master
Commit: 062bbb91a709a90b9eb980841e7a506ca0eebe8a
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=062bbb91a709a90b9eb980841e7a506ca0eebe8a

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Wed Nov 18 21:37:59 2015 +0300

winmm: Initialize reserved fields of data returned by waveOutGetDevCapsA and waveInGetDevCapsA (Coverity).

Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/winmm/tests/capture.c | 4 ++++
 dlls/winmm/tests/wave.c    | 4 ++++
 dlls/winmm/waveform.c      | 2 ++
 3 files changed, 10 insertions(+)

diff --git a/dlls/winmm/tests/capture.c b/dlls/winmm/tests/capture.c
index 54c3793..bc17ce3 100644
--- a/dlls/winmm/tests/capture.c
+++ b/dlls/winmm/tests/capture.c
@@ -316,6 +316,7 @@ static void wave_in_test_device(UINT_PTR device)
     GetSystemInfo(&sSysInfo);
     dwPageSize = sSysInfo.dwPageSize;
 
+    memset(&capsA, 0xff, sizeof(capsA));
     rc=waveInGetDevCapsA(device,&capsA,sizeof(capsA));
     ok(rc==MMSYSERR_NOERROR || rc==MMSYSERR_BADDEVICEID ||
        rc==MMSYSERR_NODRIVER,
@@ -323,11 +324,14 @@ static void wave_in_test_device(UINT_PTR device)
        dev_name(device),wave_in_error(rc));
     if (rc==MMSYSERR_BADDEVICEID || rc==MMSYSERR_NODRIVER)
         return;
+    ok(capsA.wReserved1 != 0xffff, "got %u\n", capsA.wReserved1);
 
+    memset(&capsW, 0xcc, sizeof(capsW));
     rc=waveInGetDevCapsW(device,&capsW,sizeof(capsW));
     ok(rc==MMSYSERR_NOERROR || rc==MMSYSERR_NOTSUPPORTED,
        "waveInGetDevCapsW(%s): MMSYSERR_NOERROR or MMSYSERR_NOTSUPPORTED "
        "expected, got %s\n",dev_name(device),wave_in_error(rc));
+    ok(capsW.wReserved1 == 0, "got %u\n", capsW.wReserved1);
 
     rc=waveInGetDevCapsA(device,NULL,sizeof(capsA));
     ok(rc==MMSYSERR_INVALPARAM,
diff --git a/dlls/winmm/tests/wave.c b/dlls/winmm/tests/wave.c
index a2fe8bb..896f332 100644
--- a/dlls/winmm/tests/wave.c
+++ b/dlls/winmm/tests/wave.c
@@ -893,6 +893,7 @@ static void wave_out_test_device(UINT_PTR device)
     GetSystemInfo(&sSysInfo);
     dwPageSize = sSysInfo.dwPageSize;
 
+    memset(&capsA, 0xcc, sizeof(capsA));
     rc=waveOutGetDevCapsA(device,&capsA,sizeof(capsA));
     ok(rc==MMSYSERR_NOERROR || rc==MMSYSERR_BADDEVICEID ||
        rc==MMSYSERR_NODRIVER,
@@ -900,11 +901,14 @@ static void wave_out_test_device(UINT_PTR device)
        dev_name(device),wave_out_error(rc));
     if (rc==MMSYSERR_BADDEVICEID || rc==MMSYSERR_NODRIVER)
         return;
+    ok(capsA.wReserved1 == 0, "got %u\n", capsA.wReserved1);
 
+    memset(&capsW, 0xcc, sizeof(capsW));
     rc=waveOutGetDevCapsW(device,&capsW,sizeof(capsW));
     ok(rc==MMSYSERR_NOERROR || rc==MMSYSERR_NOTSUPPORTED,
        "waveOutGetDevCapsW(%s): MMSYSERR_NOERROR or MMSYSERR_NOTSUPPORTED "
        "expected, got %s\n",dev_name(device),wave_out_error(rc));
+    ok(capsW.wReserved1 == 0, "got %u\n", capsW.wReserved1);
 
     rc=waveOutGetDevCapsA(device,0,sizeof(capsA));
     ok(rc==MMSYSERR_INVALPARAM,
diff --git a/dlls/winmm/waveform.c b/dlls/winmm/waveform.c
index 1afef74..55f48a8 100644
--- a/dlls/winmm/waveform.c
+++ b/dlls/winmm/waveform.c
@@ -2629,6 +2629,7 @@ UINT WINAPI waveOutGetDevCapsA(UINT_PTR uDeviceID, LPWAVEOUTCAPSA lpCaps,
 	wocA.dwFormats      = wocW.dwFormats;
 	wocA.wChannels      = wocW.wChannels;
 	wocA.dwSupport      = wocW.dwSupport;
+	wocA.wReserved1     = 0;
 	memcpy(lpCaps, &wocA, min(uSize, sizeof(wocA)));
     }
     return ret;
@@ -3354,6 +3355,7 @@ UINT WINAPI waveInGetDevCapsA(UINT_PTR uDeviceID, LPWAVEINCAPSA lpCaps, UINT uSi
                              sizeof(wicA.szPname), NULL, NULL );
 	wicA.dwFormats      = wicW.dwFormats;
 	wicA.wChannels      = wicW.wChannels;
+	wicA.wReserved1     = 0;
 	memcpy(lpCaps, &wicA, min(uSize, sizeof(wicA)));
     }
     return ret;




More information about the wine-cvs mailing list