[WIN32K]
authorJérôme Gardou <jerome.gardou@reactos.org>
Fri, 7 Feb 2014 23:35:06 +0000 (23:35 +0000)
committerJérôme Gardou <jerome.gardou@reactos.org>
Fri, 7 Feb 2014 23:35:06 +0000 (23:35 +0000)
 - Slightly improve the way the Device Description is retrieved.
 - Slightly improve registry function.

svn path=/trunk/; revision=62029

reactos/win32ss/gdi/eng/device.c
reactos/win32ss/user/ntuser/misc/registry.c

index 32d0ce6..d5b65cc 100644 (file)
@@ -113,7 +113,8 @@ EngpRegisterGraphicsDevice(
     pGraphicsDevice->pwszDescription = pwsz + pustrDiplayDrivers->Length / sizeof(WCHAR);
     RtlCopyMemory(pGraphicsDevice->pwszDescription,
                   pustrDescription->Buffer,
-                  pustrDescription->Length + sizeof(WCHAR));
+                  pustrDescription->Length);
+    pGraphicsDevice->pwszDescription[pustrDescription->Length/sizeof(WCHAR)] = 0;
 
     /* Initialize the pdevmodeInfo list and default index  */
     pGraphicsDevice->pdevmodeInfo = NULL;
index 81dff48..9258027 100644 (file)
@@ -58,7 +58,7 @@ RegQueryValue(
     ULONG cbInfoSize, cbDataSize;
 
     /* Check if the local buffer is sufficient */
-    cbInfoSize = FIELD_OFFSET(KEY_VALUE_PARTIAL_INFORMATION, Data) + *pcbValue;
+    cbInfoSize = FIELD_OFFSET(KEY_VALUE_PARTIAL_INFORMATION, Data[*pcbValue]);
     if (cbInfoSize <= sizeof(ajBuffer))
     {
         pInfo = (PVOID)ajBuffer;
@@ -82,7 +82,7 @@ RegQueryValue(
                              cbInfoSize,
                              &cbInfoSize);
 
-    cbDataSize = cbInfoSize - FIELD_OFFSET(KEY_VALUE_PARTIAL_INFORMATION, Data);
+    cbDataSize = pInfo->DataLength;
 
     /* Note: STATUS_BUFFER_OVERFLOW is not a success */
     if (NT_SUCCESS(Status))