Author: tfaber
Date: Sat May 11 17:15:54 2013
New Revision: 58998

URL: http://svn.reactos.org/svn/reactos?rev=58998&view=rev
Log:
[KBDHID][MOUHID]
- Free the correct usage list buffer

Modified:
    trunk/reactos/drivers/hid/kbdhid/kbdhid.c
    trunk/reactos/drivers/hid/kbdhid/kbdhid.h
    trunk/reactos/drivers/hid/mouhid/mouhid.c
    trunk/reactos/drivers/hid/mouhid/mouhid.h

Modified: trunk/reactos/drivers/hid/kbdhid/kbdhid.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/hid/kbdhid/kbdhid.c?rev=58998&r1=58997&r2=58998&view=diff
==============================================================================
--- trunk/reactos/drivers/hid/kbdhid/kbdhid.c   [iso-8859-1] (original)
+++ trunk/reactos/drivers/hid/kbdhid/kbdhid.c   [iso-8859-1] Sat May 11 
17:15:54 2013
@@ -729,6 +729,7 @@
         ExFreePoolWithTag(PreparsedData, KBDHID_TAG);
         return STATUS_INSUFFICIENT_RESOURCES;
     }
+    DeviceExtension->UsageListBuffer = Buffer;
 
     /* init usage lists */
     RtlZeroMemory(Buffer, sizeof(USAGE_AND_PAGE) * 4 * Buttons);
@@ -788,9 +789,10 @@
         DeviceExtension->PreparsedData = NULL;
     }
 
-    if (DeviceExtension->CurrentUsageList)
-    {
-        ExFreePoolWithTag(DeviceExtension->CurrentUsageList, KBDHID_TAG);
+    if (DeviceExtension->UsageListBuffer)
+    {
+        ExFreePoolWithTag(DeviceExtension->UsageListBuffer, KBDHID_TAG);
+        DeviceExtension->UsageListBuffer = NULL;
         DeviceExtension->CurrentUsageList = NULL;
         DeviceExtension->PreviousUsageList = NULL;
         DeviceExtension->MakeUsageList = NULL;

Modified: trunk/reactos/drivers/hid/kbdhid/kbdhid.h
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/hid/kbdhid/kbdhid.h?rev=58998&r1=58997&r2=58998&view=diff
==============================================================================
--- trunk/reactos/drivers/hid/kbdhid/kbdhid.h   [iso-8859-1] (original)
+++ trunk/reactos/drivers/hid/kbdhid/kbdhid.h   [iso-8859-1] Sat May 11 
17:15:54 2013
@@ -39,6 +39,11 @@
     // class callback
     //
     PVOID ClassService;
+
+    //
+    // buffer for the four usage lists below
+    //
+    PVOID UsageListBuffer;
 
     //
     // usage list length

Modified: trunk/reactos/drivers/hid/mouhid/mouhid.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/hid/mouhid/mouhid.c?rev=58998&r1=58997&r2=58998&view=diff
==============================================================================
--- trunk/reactos/drivers/hid/mouhid/mouhid.c   [iso-8859-1] (original)
+++ trunk/reactos/drivers/hid/mouhid/mouhid.c   [iso-8859-1] Sat May 11 
17:15:54 2013
@@ -720,7 +720,7 @@
     ULONG ValueCapsLength;
     HIDP_VALUE_CAPS ValueCaps;
     PMOUHID_DEVICE_EXTENSION DeviceExtension;
-    PUSHORT Buffer;
+    PUSAGE Buffer;
 
     /* get device extension */
     DeviceExtension = DeviceObject->DeviceExtension;
@@ -816,6 +816,7 @@
         ExFreePoolWithTag(PreparsedData, MOUHID_TAG);
         return STATUS_INSUFFICIENT_RESOURCES;
     }
+    DeviceExtension->UsageListBuffer = Buffer;
 
     /* init usage lists */
     RtlZeroMemory(Buffer, sizeof(USAGE) * 4 * Buttons);
@@ -919,9 +920,10 @@
         DeviceExtension->PreparsedData = NULL;
     }
 
-    if (DeviceExtension->CurrentUsageList)
-    {
-        ExFreePoolWithTag(DeviceExtension->CurrentUsageList, MOUHID_TAG);
+    if (DeviceExtension->UsageListBuffer)
+    {
+        ExFreePoolWithTag(DeviceExtension->UsageListBuffer, MOUHID_TAG);
+        DeviceExtension->UsageListBuffer = NULL;
         DeviceExtension->CurrentUsageList = NULL;
         DeviceExtension->PreviousUsageList = NULL;
         DeviceExtension->MakeUsageList = NULL;

Modified: trunk/reactos/drivers/hid/mouhid/mouhid.h
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/hid/mouhid/mouhid.h?rev=58998&r1=58997&r2=58998&view=diff
==============================================================================
--- trunk/reactos/drivers/hid/mouhid/mouhid.h   [iso-8859-1] (original)
+++ trunk/reactos/drivers/hid/mouhid/mouhid.h   [iso-8859-1] Sat May 11 
17:15:54 2013
@@ -48,6 +48,11 @@
     // wheel usage page
     //
     USHORT WheelUsagePage;
+
+    //
+    // buffer for the four usage lists below
+    //
+    PVOID UsageListBuffer;
 
     //
     // usage list length


Reply via email to