nvdimm: fix header pointer in nvdimm_build_nfit()
commitc8e6c93857885a19e959ec622d92a256d1cd98eb
authorHaozhong Zhang <haozhong.zhang@intel.com>
Fri, 25 Dec 2015 02:57:42 +0000 (25 10:57 +0800)
committerMichael S. Tsirkin <mst@redhat.com>
Fri, 8 Jan 2016 14:01:37 +0000 (8 16:01 +0200)
tree02234086ab1e1e2a18fbaf014195ae9fdd084eb9
parent6bb9ead762bf749af11ea225fc2a74db1b93c105
nvdimm: fix header pointer in nvdimm_build_nfit()

In the current nvdimm_build_nfit(), the pointer 'header' initially equals
to table_data->data + table_data->len. However, the following
g_array_append_vals(table_data, structures->data, structures->len)
may resize and relocate table_data->data[]. Therefore, the usage of 'header'
afterwards may be illegal.

This patch fixes this issue by storing an offset within table_data->data[]
(rather than an address) in 'header'.

Signed-off-by: Haozhong Zhang <haozhong.zhang@intel.com>
Reviewed-by: Xiao Guangrong <guangrong.xiao@linux.intel.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
hw/acpi/nvdimm.c