Brendan Shanks : ntdll: Use unique handle numbers in generated SMBIOS tables.

Alexandre Julliard julliard at winehq.org
Tue Aug 4 15:26:36 CDT 2020


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

Author: Brendan Shanks <bshanks at codeweavers.com>
Date:   Tue Aug  4 12:02:47 2020 -0700

ntdll: Use unique handle numbers in generated SMBIOS tables.

Signed-off-by: Brendan Shanks <bshanks at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/ntdll/unix/system.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/dlls/ntdll/unix/system.c b/dlls/ntdll/unix/system.c
index 3756bd7cee..de33d52ed2 100644
--- a/dlls/ntdll/unix/system.c
+++ b/dlls/ntdll/unix/system.c
@@ -1257,6 +1257,7 @@ static NTSTATUS get_firmware_info( SYSTEM_FIRMWARE_TABLE_INFORMATION *sfti, ULON
         size_t chassis_vendor_len, chassis_version_len, chassis_serial_len, chassis_asset_tag_len;
         char *buffer = (char*)sfti->TableBuffer;
         BYTE string_count;
+        BYTE handle_count = 0;
         struct smbios_prologue *prologue;
         struct smbios_bios *bios;
         struct smbios_system *system;
@@ -1321,7 +1322,7 @@ static NTSTATUS get_firmware_info( SYSTEM_FIRMWARE_TABLE_INFORMATION *sfti, ULON
         bios = (struct smbios_bios*)buffer;
         bios->hdr.type = 0;
         bios->hdr.length = sizeof(struct smbios_bios);
-        bios->hdr.handle = 0;
+        bios->hdr.handle = handle_count++;
         bios->vendor = bios_vendor_len ? ++string_count : 0;
         bios->version = bios_version_len ? ++string_count : 0;
         bios->start = 0;
@@ -1346,7 +1347,7 @@ static NTSTATUS get_firmware_info( SYSTEM_FIRMWARE_TABLE_INFORMATION *sfti, ULON
         system = (struct smbios_system*)buffer;
         system->hdr.type = 1;
         system->hdr.length = sizeof(struct smbios_system);
-        system->hdr.handle = 0;
+        system->hdr.handle = handle_count++;
         system->vendor = system_vendor_len ? ++string_count : 0;
         system->product = system_product_len ? ++string_count : 0;
         system->version = system_version_len ? ++string_count : 0;
@@ -1370,7 +1371,7 @@ static NTSTATUS get_firmware_info( SYSTEM_FIRMWARE_TABLE_INFORMATION *sfti, ULON
         board = (struct smbios_board*)buffer;
         board->hdr.type = 2;
         board->hdr.length = sizeof(struct smbios_board);
-        board->hdr.handle = 0;
+        board->hdr.handle = handle_count++;
         board->vendor = board_vendor_len ? ++string_count : 0;
         board->product = board_product_len ? ++string_count : 0;
         board->version = board_version_len ? ++string_count : 0;
@@ -1388,7 +1389,7 @@ static NTSTATUS get_firmware_info( SYSTEM_FIRMWARE_TABLE_INFORMATION *sfti, ULON
         chassis = (struct smbios_chassis*)buffer;
         chassis->hdr.type = 3;
         chassis->hdr.length = sizeof(struct smbios_chassis);
-        chassis->hdr.handle = 0;
+        chassis->hdr.handle = handle_count++;
         chassis->vendor = chassis_vendor_len ? ++string_count : 0;
         chassis->type = atoi(chassis_type);
         chassis->version = chassis_version_len ? ++string_count : 0;




More information about the wine-cvs mailing list