Brendan Shanks : ntdll: End generated SMBIOS tables with the end-of-table structure.
Alexandre Julliard
julliard at winehq.org
Tue Aug 4 15:26:37 CDT 2020
Module: wine
Branch: master
Commit: 2b76b9f234eb5d4753337d8b080f2c050daae3ff
URL: https://source.winehq.org/git/wine.git/?a=commit;h=2b76b9f234eb5d4753337d8b080f2c050daae3ff
Author: Brendan Shanks <bshanks at codeweavers.com>
Date: Tue Aug 4 12:02:48 2020 -0700
ntdll: End generated SMBIOS tables with the end-of-table structure.
Signed-off-by: Brendan Shanks <bshanks at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/ntdll/unix/system.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/dlls/ntdll/unix/system.c b/dlls/ntdll/unix/system.c
index de33d52ed2..4e0841175e 100644
--- a/dlls/ntdll/unix/system.c
+++ b/dlls/ntdll/unix/system.c
@@ -1263,6 +1263,7 @@ static NTSTATUS get_firmware_info( SYSTEM_FIRMWARE_TABLE_INFORMATION *sfti, ULON
struct smbios_system *system;
struct smbios_board *board;
struct smbios_chassis *chassis;
+ struct smbios_header *end_of_table;
#define S(s) s, sizeof(s)
bios_vendor_len = get_smbios_string("/sys/class/dmi/id/bios_vendor", S(bios_vendor));
@@ -1301,6 +1302,9 @@ static NTSTATUS get_firmware_info( SYSTEM_FIRMWARE_TABLE_INFORMATION *sfti, ULON
*required_len += sizeof(struct smbios_chassis);
*required_len += max(L(chassis_vendor_len) + L(chassis_version_len) + L(chassis_serial_len) +
L(chassis_asset_tag_len) + 1, 2);
+
+ *required_len += sizeof(struct smbios_header);
+ *required_len += 2;
#undef L
sfti->TableBufferLength = *required_len;
@@ -1408,6 +1412,14 @@ static NTSTATUS get_firmware_info( SYSTEM_FIRMWARE_TABLE_INFORMATION *sfti, ULON
if (!string_count) *buffer++ = 0;
*buffer++ = 0;
+ end_of_table = (struct smbios_header*)buffer;
+ end_of_table->type = 127;
+ end_of_table->length = sizeof(struct smbios_header);
+ end_of_table->handle = handle_count++;
+ buffer += sizeof(struct smbios_header);
+ *buffer++ = 0;
+ *buffer++ = 0;
+
return STATUS_SUCCESS;
}
default:
More information about the wine-cvs
mailing list