hw/sd.c and hw/onenand.c were wrongly using VMSTATE_BUFFER_UNSAFE for 
dynamically
allocated buffer migration, this was causing memory corruption. 
Use VMSTATE_BUFFER_POINTER_UNSAFE (wich has an additional VMS_POINTER flag set) 
instead.

Not sure what to do with vmstate version for his devices, should I bump it? 
Migration
was never working for them anyway.

Only tested hw/sd.c, by saving/loading a snapshot of VM while it was playing 
videofile
from SD card.

Igor Mitsyanko (3):
  vmstate.h: introduce VMSTATE_BUFFER_POINTER_UNSAFE macro
  hw/sd.c: fix migration of dynamically allocated buffer "buf"
  hw/onenand.c: fix migration of dynamically allocated buffer "otp"

 hw/onenand.c                |    3 ++-
 hw/sd.c                     |    2 +-
 include/migration/vmstate.h |    9 +++++++++
 3 files changed, 12 insertions(+), 2 deletions(-)

-- 
1.7.5.4


Reply via email to