- Freed the path string for the keyboard dll.  
- Freed some strings in all cases.
Modified: trunk/reactos/subsys/win32k/ntuser/keyboard.c

Modified: trunk/reactos/subsys/win32k/ntuser/keyboard.c
--- trunk/reactos/subsys/win32k/ntuser/keyboard.c	2005-09-13 18:04:00 UTC (rev 17834)
+++ trunk/reactos/subsys/win32k/ntuser/keyboard.c	2005-09-13 18:08:18 UTC (rev 17835)
@@ -616,8 +616,9 @@
          RtlInitUnicodeString(&LayoutValueName,L"Layout File");
 
          Status = ReadRegistryValue(&LayoutKeyName,&LayoutValueName,&LayoutFile);
-         RtlInitUnicodeString(&FullLayoutPath,SYSTEMROOT_DIR);
 
+         RtlFreeUnicodeString(&LayoutKeyName);
+
          if( !NT_SUCCESS(Status) )
          {
             DPRINT1("Got default locale but not layout file. (%08lx)\n",
@@ -627,8 +628,8 @@
          {
             DPRINT("Read registry and got %wZ\n", &LayoutFile);
 
-            RtlFreeUnicodeString(&LayoutKeyName);
 
+            RtlInitUnicodeString(&FullLayoutPath,SYSTEMROOT_DIR);
             AppendUnicodeString(&FullLayoutPath,&LayoutFile,FALSE);
 
             DPRINT("Loading Keyboard DLL %wZ\n", &FullLayoutPath);
@@ -647,7 +648,7 @@
                return;
             }
             memcpy(KeyboardLayoutWSTR,FullLayoutPath.Buffer,
-                   FullLayoutPath.Length + sizeof(WCHAR));
+                   FullLayoutPath.Length);
             KeyboardLayoutWSTR[FullLayoutPath.Length / sizeof(WCHAR)] = 0;
 
             kbModule = EngLoadImage(KeyboardLayoutWSTR);
@@ -656,6 +657,7 @@
             if( !kbModule )
                DPRINT1( "Load Keyboard Layout: No %wZ\n", &FullLayoutPath );
 
+            ExFreePool(KeyboardLayoutWSTR);
             RtlFreeUnicodeString(&FullLayoutPath);
          }
       }
@@ -694,7 +696,7 @@
 #undef XX_STATUS
 }
 
-PKBDTABLES W32kGetDefaultKeyLayout()
+PKBDTABLES W32kGetDefaultKeyLayout(VOID)
 {
    PKBDTABLES pkKeyboardLayout = 0;
    InitKbdLayout( (PVOID) &pkKeyboardLayout );