Message ID | 20220207113129.2701722-4-ani@anisinha.ca (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | hw/smbios: fix table memory corruption with large memory vms | expand |
On Mon, 7 Feb 2022 17:01:29 +0530 Ani Sinha <ani@anisinha.ca> wrote: > Since change b3cddba9c14b034 ("hw/smbios: fix table memory corruption with large memory vms") > we reserve additional memory space between tables 17 and 19 for large VMs. > This may cause table 19 to collide with table 32 for those VMs. This change > adds an assertion to make sure table 19 does not extend into the memory used > by table 32. > > Signed-off-by: Ani Sinha <ani@anisinha.ca> > --- > hw/smbios/smbios.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/hw/smbios/smbios.c b/hw/smbios/smbios.c > index d7de740363..800a35e9a5 100644 > --- a/hw/smbios/smbios.c > +++ b/hw/smbios/smbios.c > @@ -1048,6 +1048,9 @@ void smbios_get_tables(MachineState *ms, > mem_array[i].length); > } > > + /* we need to make sure table 19 and table 32 do not overlap */ same as in 2/3 (here and commit message), tables do not overlap > + assert((mem_array_size + offset) < (T32_BASE - T19_BASE)); > + > smbios_build_type_32_table(); > smbios_build_type_38_table(); > smbios_build_type_41_table(errp);
diff --git a/hw/smbios/smbios.c b/hw/smbios/smbios.c index d7de740363..800a35e9a5 100644 --- a/hw/smbios/smbios.c +++ b/hw/smbios/smbios.c @@ -1048,6 +1048,9 @@ void smbios_get_tables(MachineState *ms, mem_array[i].length); } + /* we need to make sure table 19 and table 32 do not overlap */ + assert((mem_array_size + offset) < (T32_BASE - T19_BASE)); + smbios_build_type_32_table(); smbios_build_type_38_table(); smbios_build_type_41_table(errp);
Since change b3cddba9c14b034 ("hw/smbios: fix table memory corruption with large memory vms") we reserve additional memory space between tables 17 and 19 for large VMs. This may cause table 19 to collide with table 32 for those VMs. This change adds an assertion to make sure table 19 does not extend into the memory used by table 32. Signed-off-by: Ani Sinha <ani@anisinha.ca> --- hw/smbios/smbios.c | 3 +++ 1 file changed, 3 insertions(+)