mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 07:43:54 -06:00
migration/vmstate: fix array of ptr with nullptrs
Make VMS_ARRAY_OF_POINTER cope with null pointers. Previously the reward for trying to migrate an array with some null pointers in it was an illegal memory access, that is a swift and painless death of the process. Let's make vmstate cope with this scenario. The general approach is, when we encounter a null pointer (element), instead of following the pointer to save/load the data behind it, we save/load a placeholder. This way we can detect if we expected a null pointer at the load side but not null data was saved instead. Signed-off-by: Halil Pasic <pasic@linux.vnet.ibm.com> Reviewed-by: Guenther Hutzl <hutzl@linux.vnet.ibm.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Message-Id: <20170222160119.52771-4-pasic@linux.vnet.ibm.com> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
This commit is contained in:
parent
cbfda0e6cf
commit
07d4e69147
2 changed files with 42 additions and 2 deletions
|
@ -253,6 +253,10 @@ extern const VMStateInfo vmstate_info_uint16;
|
|||
extern const VMStateInfo vmstate_info_uint32;
|
||||
extern const VMStateInfo vmstate_info_uint64;
|
||||
|
||||
/** Put this in the stream when migrating a null pointer.*/
|
||||
#define VMS_NULLPTR_MARKER (0x30U) /* '0' */
|
||||
extern const VMStateInfo vmstate_info_nullptr;
|
||||
|
||||
extern const VMStateInfo vmstate_info_float64;
|
||||
extern const VMStateInfo vmstate_info_cpudouble;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue