diff options
author | Heinrich Schuchardt <heinrich.schuchardt@canonical.com> | 2024-01-11 07:34:08 +0100 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2024-01-18 20:24:13 -0500 |
commit | ccefbf320d89f8ba857c57296e9502e060d7ab9c (patch) | |
tree | 877751d1049d1c911aa8ff30ff2e3ba893b1720b /lib | |
parent | 85946d69d6f5a309564e7e89386cfcaff75d0b86 (diff) | |
download | u-boot-ccefbf320d89f8ba857c57296e9502e060d7ab9c.tar.gz u-boot-ccefbf320d89f8ba857c57296e9502e060d7ab9c.tar.bz2 u-boot-ccefbf320d89f8ba857c57296e9502e060d7ab9c.zip |
smbios: buffer overflow when zeroing entry point
A SMBIOS 3 entry point has a different length than an SMBIOS 2.1 entry
point.
Fixes: 70924294f375 ("smbios: Use SMBIOS 3.0 to support an address above 4GB")
Fixes: 1c5f6fa3883d ("smbios: Drop support for SMBIOS2 tables")
Addresses-Coverity-ID: 477212 ("Wrong sizeof argument")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/smbios.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/smbios.c b/lib/smbios.c index 41aa936c4c..25595f55ab 100644 --- a/lib/smbios.c +++ b/lib/smbios.c @@ -591,8 +591,8 @@ ulong write_smbios_table(ulong addr) table_addr = (ulong)map_sysmem(tables, 0); /* now go back and write the SMBIOS3 header */ - se = map_sysmem(start_addr, sizeof(struct smbios_entry)); - memset(se, '\0', sizeof(struct smbios_entry)); + se = map_sysmem(start_addr, sizeof(struct smbios3_entry)); + memset(se, '\0', sizeof(struct smbios3_entry)); memcpy(se->anchor, "_SM3_", 5); se->length = sizeof(struct smbios3_entry); se->major_ver = SMBIOS_MAJOR_VER; |