diff options
Diffstat (limited to 'gitlab/issues/target_missing/host_missing/accel_missing/2635.toml')
| -rw-r--r-- | gitlab/issues/target_missing/host_missing/accel_missing/2635.toml | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/gitlab/issues/target_missing/host_missing/accel_missing/2635.toml b/gitlab/issues/target_missing/host_missing/accel_missing/2635.toml new file mode 100644 index 00000000..8020ad86 --- /dev/null +++ b/gitlab/issues/target_missing/host_missing/accel_missing/2635.toml @@ -0,0 +1,22 @@ +id = 2635 +title = "A use-after-free bug in pflash_cfi01 snapshot implementation" +state = "opened" +created_at = "2024-10-21T14:07:42.031Z" +closed_at = "n/a" +labels = [] +url = "https://gitlab.com/qemu-project/qemu/-/issues/2635" +host-os = "- OS/kernel version:" +host-arch = "- QEMU flavor:" +qemu-version = "- QEMU command line:" +guest-os = "- OS/kernel version:" +guest-arch = "## Description of problem" +description = """The flash snapshot restore does not function correctly. Basically when you use “if=pflash,format=raw,unit=0,file=OVMF_VAR.fd", it crashes when trying to restore a snapshot. + +The root cause is: + +1. In system/runstate.c, function vm_state_notify loops through vm_change_state_head list and calls the callback function for each entry. +2. One of the callback function pointer points to function postload_update_cb in hw/block/pflash_cfi01.c. +3. In function postload_update_cb, it calls qemu_del_vm_change_state_handler in which the entry element memory is freed. +4. Note that, it is still running in the loop, the entry will be visited and get executed, the function pointer may point to a wide memory.""" +reproduce = "n/a" +additional = """""" |