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