qemu/include
Dr. David Alan Gilbert f68945d42b Add a protective section footer
Badly formatted migration streams can go undetected or produce
misleading errors due to a lock of checking at the end of sections.
In particular a section that adds an extra 0x00 at the end
causes what looks like a normal end of stream and thus doesn't produce
any errors, and something that ends in a 0x01..0x04 kind of look
like real section headers and then fail when the section parser tries
to figure out which section they are.  This is made worse by the
choice of 0x00..0x04 being small numbers that are particularly common
in normal section data.

This patch adds a section footer consisting of a marker (0x7e - ~)
followed by the section-id that was also sent in the header.  If
they mismatch then it throws an error explaining which section was
being loaded.

Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
2015-06-12 06:54:01 +02:00
..
block qapi: add dirty bitmap status 2015-05-29 12:53:12 +02:00
disas disas: Implement disassembly output for A64 2014-02-08 14:50:48 +00:00
exec qemu_ram_foreach_block: pass up error value, and down the ramblock name 2015-06-12 06:54:01 +02:00
fpu softfloat: expand out STATUS macro 2015-02-06 16:11:38 +00:00
hw pc, acpi, virtio 2015-06-11 15:33:38 +01:00
libdecnumber Fix new typos in comments (found by codespell) 2014-07-18 17:45:36 +04:00
migration Add a protective section footer 2015-06-12 06:54:01 +02:00
monitor monitor: Change return type of monitor_cur_is_qmp() to bool 2015-06-02 10:07:16 +02:00
net vhost: 64 bit features 2015-06-10 18:15:04 +02:00
qapi qobject: Add a special null QObject 2015-05-11 08:59:07 -04:00
qemu Move loadvm_handlers into MigrationIncomingState 2015-06-12 06:54:01 +02:00
qom qom: add object_property_add_const_link 2015-06-05 17:36:39 +02:00
standard-headers virtio: update headers, add virtio-gpu (2d) 2015-06-10 11:02:00 +02:00
sysemu Split header writing out of qemu_savevm_state_begin 2015-06-12 06:54:01 +02:00
ui QemuOpts: Convert qemu_opts_foreach() to Error 2015-06-09 07:37:37 +02:00
config.h janitor: move remaining public headers to include/ 2012-12-19 08:32:46 +01:00
elf.h linux/elf.h update 2015-05-27 17:52:03 +02:00
glib-compat.h glib: remove stale compat functions 2015-05-22 15:58:06 -04:00
qemu-common.h machine: add default_ram_size to machine class 2015-06-03 23:56:55 +02:00
qemu-io.h qemu-io: Use BlockBackend 2015-02-16 15:07:19 +00:00
qjson.h QJSON: Add JSON writer 2015-02-05 17:16:14 +01:00
trace-tcg.h trace: [tcg] Generate TCG tracing routines 2014-08-12 14:26:12 +01:00
trace.h trace: [tcg] Include event definitions in "trace.h" 2014-08-12 14:26:12 +01:00