[ros-diffs] [dchapyshev] 42064: - Add SEH protection at memory copying. Fixes crash at "setupapi_winetest devinst"

dchapyshev at svn.reactos.org dchapyshev at svn.reactos.org
Sat Jul 18 21:22:12 CEST 2009


Author: dchapyshev
Date: Sat Jul 18 21:22:12 2009
New Revision: 42064

URL: http://svn.reactos.org/svn/reactos?rev=42064&view=rev
Log:
- Add SEH protection at memory copying. Fixes crash at "setupapi_winetest devinst"

Modified:
    trunk/reactos/dll/win32/setupapi/devinst.c

Modified: trunk/reactos/dll/win32/setupapi/devinst.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/setupapi/devinst.c?rev=42064&r1=42063&r2=42064&view=diff
==============================================================================
--- trunk/reactos/dll/win32/setupapi/devinst.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/setupapi/devinst.c [iso-8859-1] Sat Jul 18 21:22:12 2009
@@ -4137,8 +4137,19 @@
             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);



More information about the Ros-diffs mailing list