[PATCH 0/4] MR2819: dinput, hid, w.g.i: Fix some leaks and uninitialized reads found with Valgrind.
From: Rémi Bernon <rbernon(a)codeweavers.com> --- dlls/hid/hidd.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dlls/hid/hidd.c b/dlls/hid/hidd.c index e01ab2a35e7..af024b456b4 100644 --- a/dlls/hid/hidd.c +++ b/dlls/hid/hidd.c @@ -85,9 +85,9 @@ BOOLEAN WINAPI HidD_GetFeature( HANDLE file, void *report_buf, ULONG report_len return sync_ioctl( file, IOCTL_HID_GET_FEATURE, NULL, 0, report_buf, report_len ); } -void WINAPI HidD_GetHidGuid(LPGUID guid) +void WINAPI HidD_GetHidGuid( GUID *guid ) { - TRACE( "guid %s.\n", debugstr_guid( guid ) ); + TRACE( "guid %p.\n", guid ); *guid = GUID_DEVINTERFACE_HID; } -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/2819
From: Rémi Bernon <rbernon(a)codeweavers.com> --- dlls/dinput/tests/device8.c | 1 + dlls/dinput/tests/force_feedback.c | 8 +++++++- dlls/dinput/tests/joystick8.c | 4 ++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/dlls/dinput/tests/device8.c b/dlls/dinput/tests/device8.c index 71982f8f622..69106749528 100644 --- a/dlls/dinput/tests/device8.c +++ b/dlls/dinput/tests/device8.c @@ -429,6 +429,7 @@ void test_overlapped_format( DWORD version ) cleanup: IUnknown_Release( keyboard ); + IDirectInput_Release( dinput ); DestroyWindow( hwnd ); CloseHandle( event ); diff --git a/dlls/dinput/tests/force_feedback.c b/dlls/dinput/tests/force_feedback.c index 0086144fb73..c20125655f4 100644 --- a/dlls/dinput/tests/force_feedback.c +++ b/dlls/dinput/tests/force_feedback.c @@ -213,7 +213,7 @@ static void check_dinput_devices( DWORD version, DIDEVICEINSTANCEW *devinst ) { IDirectInput8W *di8; IDirectInputW *di; - ULONG count; + ULONG count, ref; HRESULT hr; if (version >= 0x800) @@ -270,6 +270,9 @@ static void check_dinput_devices( DWORD version, DIDEVICEINSTANCEW *devinst ) if ((devinst->dwDevType & 0xff) != DI8DEVTYPE_SUPPLEMENTAL) ok( hr == DI_OK, "EnumDevices returned: %#lx\n", hr ); else ok( hr == DIERR_INVALIDPARAM, "EnumDevices returned: %#lx\n", hr ); ok( count == 0, "got count %lu, expected 0\n", count ); + + ref = IDirectInput8_Release( di8 ); + ok( ref == 0, "Release returned %ld\n", ref ); } else { @@ -324,6 +327,9 @@ static void check_dinput_devices( DWORD version, DIDEVICEINSTANCEW *devinst ) hr = IDirectInput_EnumDevices( di, 0x14, enum_device_count, &count, DIEDFL_ALLDEVICES ); ok( hr == DIERR_INVALIDPARAM, "EnumDevices returned: %#lx\n", hr ); + + ref = IDirectInput_Release( di ); + ok( ref == 0, "Release returned %ld\n", ref ); } } diff --git a/dlls/dinput/tests/joystick8.c b/dlls/dinput/tests/joystick8.c index b6a627d6d25..60bee06479a 100644 --- a/dlls/dinput/tests/joystick8.c +++ b/dlls/dinput/tests/joystick8.c @@ -349,6 +349,8 @@ static void check_dinput_devices( DWORD version, DIDEVICEINSTANCEW *devinst ) ref = IDirectInputDevice8_Release( device ); ok( ref == 0, "Release returned %ld\n", ref ); + ref = IDirectInput8_Release( di8 ); + ok( ref == 0, "Release returned %ld\n", ref ); } else { @@ -403,6 +405,8 @@ static void check_dinput_devices( DWORD version, DIDEVICEINSTANCEW *devinst ) hr = IDirectInput_EnumDevices( di, 0x14, enum_device_count, &count, DIEDFL_ALLDEVICES ); ok( hr == DIERR_INVALIDPARAM, "EnumDevices returned: %#lx\n", hr ); + ref = IDirectInput_Release( di ); + ok( ref == 0, "Release returned %ld\n", ref ); } } -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/2819
From: Rémi Bernon <rbernon(a)codeweavers.com> --- dlls/dinput/tests/hid.c | 1 + 1 file changed, 1 insertion(+) diff --git a/dlls/dinput/tests/hid.c b/dlls/dinput/tests/hid.c index bd01d1ae868..87df44ac9a2 100644 --- a/dlls/dinput/tests/hid.c +++ b/dlls/dinput/tests/hid.c @@ -442,6 +442,7 @@ static void add_file_to_catalog( HANDLE catalog, const WCHAR *file ) sizeof(L"2:6.0"), (BYTE *)L"2:6.0" ); ok( ret, "Failed to write attr, error %lu\n", GetLastError() ); } + free( indirect_data ); } static void unload_driver( SC_HANDLE service ) -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/2819
From: Rémi Bernon <rbernon(a)codeweavers.com> --- dlls/windows.gaming.input/force_feedback.c | 1 - 1 file changed, 1 deletion(-) diff --git a/dlls/windows.gaming.input/force_feedback.c b/dlls/windows.gaming.input/force_feedback.c index cff3c184bf9..39a450f3778 100644 --- a/dlls/windows.gaming.input/force_feedback.c +++ b/dlls/windows.gaming.input/force_feedback.c @@ -646,7 +646,6 @@ static HRESULT WINAPI motor_load_effect_async( IUnknown *invoker, IUnknown *para { if (effect->effect) IDirectInputEffect_Release( effect->effect ); effect->effect = dinput_effect; - IDirectInputEffect_AddRef( effect->effect ); } LeaveCriticalSection( &effect->cs ); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/2819
participants (1)
-
Rémi Bernon