summary refs log tree commit diff stats
path: root/gitlab/issues/target_missing/host_missing/accel_missing/2635.toml
diff options
context:
space:
mode:
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.toml22
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 = """"""