From 2794a2eba0d8800e629a0c98ea0bbd790699f349 Mon Sep 17 00:00:00 2001 From: Dmitry Chapyshev Date: Sat, 18 Jul 2009 19:22:12 +0000 Subject: [PATCH] - Add SEH protection at memory copying. Fixes crash at "setupapi_winetest devinst" svn path=/trunk/; revision=42064 --- reactos/dll/win32/setupapi/devinst.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/reactos/dll/win32/setupapi/devinst.c b/reactos/dll/win32/setupapi/devinst.c index 900a7310aaf..73853014a55 100644 --- a/reactos/dll/win32/setupapi/devinst.c +++ b/reactos/dll/win32/setupapi/devinst.c @@ -4137,8 +4137,19 @@ SetupDiGetDeviceInstallParamsW( Source = &((struct DeviceInfo *)DeviceInfoData->Reserved)->InstallParams; else Source = &list->InstallParams; - memcpy(DeviceInstallParams, Source, Source->cbSize); + ret = TRUE; + + _SEH2_TRY + { + memcpy(DeviceInstallParams, Source, Source->cbSize); + } + _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) + { + SetLastError(RtlNtStatusToDosError(_SEH2_GetExceptionCode())); + ret = FALSE; + } + _SEH2_END; } TRACE("Returning %d\n", ret);