John Chadwick : kernelbase: Fix GetSystemFirmwareTable regression.

Alexandre Julliard julliard at winehq.org
Wed Nov 20 16:49:12 CST 2019


Module: wine
Branch: master
Commit: 9021cca65da6eb6b777518410e82ea5f29e8be51
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=9021cca65da6eb6b777518410e82ea5f29e8be51

Author: John Chadwick <john at jchw.io>
Date:   Wed Nov 20 00:40:33 2019 -0800

kernelbase: Fix GetSystemFirmwareTable regression.

Regression caused by 71aba33fc68e97d1b49a9207c8fc2ef733b604a7.

Signed-off-by: John Chadwick <john at jchw.io>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/kernel32/tests/version.c |  1 -
 dlls/kernelbase/memory.c      | 11 ++++-------
 2 files changed, 4 insertions(+), 8 deletions(-)

diff --git a/dlls/kernel32/tests/version.c b/dlls/kernel32/tests/version.c
index db42fc5a29..1bb3e20978 100644
--- a/dlls/kernel32/tests/version.c
+++ b/dlls/kernel32/tests/version.c
@@ -738,7 +738,6 @@ static void test_GetSystemFirmwareTable(void)
 
     expected_len -= min_sfti_len;
     len = pGetSystemFirmwareTable(RSMB, 0, NULL, 0);
-todo_wine
     ok(len == expected_len, "Expected length %u, got %u\n", expected_len, len);
 
     smbios_table = HeapAlloc(GetProcessHeap(), 0, expected_len);
diff --git a/dlls/kernelbase/memory.c b/dlls/kernelbase/memory.c
index 6be399bc97..c93d490e74 100644
--- a/dlls/kernelbase/memory.c
+++ b/dlls/kernelbase/memory.c
@@ -1161,13 +1161,10 @@ UINT WINAPI GetSystemFirmwareTable( DWORD provider, DWORD id, void *buffer, DWOR
     info->Action = SystemFirmwareTable_Get;
     info->TableID = id;
 
-    if (set_ntstatus( NtQuerySystemInformation( SystemFirmwareTableInformation,
-                                                info, buffer_size, &buffer_size )))
-    {
-        buffer_size -= offsetof( SYSTEM_FIRMWARE_TABLE_INFORMATION, TableBuffer );
-        if (buffer_size <= size) memcpy( buffer, info->TableBuffer, buffer_size );
-    }
-    else buffer_size = 0;
+    set_ntstatus( NtQuerySystemInformation( SystemFirmwareTableInformation,
+                                            info, buffer_size, &buffer_size ));
+    buffer_size -= offsetof( SYSTEM_FIRMWARE_TABLE_INFORMATION, TableBuffer );
+    if (buffer_size <= size) memcpy( buffer, info->TableBuffer, buffer_size );
 
     HeapFree( GetProcessHeap(), 0, info );
     return buffer_size;




More information about the wine-cvs mailing list