[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 0/3] Protect against long IDs
From: |
Dr. David Alan Gilbert (git) |
Subject: |
[Qemu-devel] [PATCH 0/3] Protect against long IDs |
Date: |
Mon, 9 Jan 2017 20:13:37 +0000 |
From: "Dr. David Alan Gilbert" <address@hidden>
QEMU currently asserts if you try and create a PCI device
on the end of a very long chain, because the ID string
exceeds the maximum length, and ends up aliasing.
Fail with a clean error in this common case; there's
lots of other places that call the various registration
functions that now check for this error; I've only made
sure the common qdev path fails cleanly.
With these patches it fails with the slightly cleaner:
qemu-system-x86_64: -device x3130-upstream,id=pci.52,bus=pci.51,addr=0x0: Path
too long for VMState
(0000:00:0f.0:00.0:00.0:00.0:00.0:00.0:00.0:00.0:00.0:00.0:00.0:00.0:00.0:00.0:00.0:00.0:00.0:00.0:00.0:00.0:00.0:00.0:00.0:00.0:00.0:00.0:00.0:00.0:00.0:00.0:00.0:00.0:00.0:00.0:00.0:00.0:00.0:00.0:00.0:00.0:00.0:00.0:00.0:00.0:00.0:00.0:00.0:00.0:00.0:00.0)
I don't think in real uses we'll end up with paths this long,
so I'm not intending to fix the paths to be dynamic lengths
unless we find a really good case where it happens.
This corresponds to:
https://bugzilla.redhat.com/show_bug.cgi?id=1342434
Dave
Signed-off-by: Dr. David Alan Gilbert <address@hidden>
Dr. David Alan Gilbert (3):
vmstate_register_with_alias_id: Take an Error **
migration: Check for ID length
vmstate registration: check return values
hw/core/qdev.c | 7 +++++--
hw/intc/apic_common.c | 2 +-
include/migration/vmstate.h | 7 +++++--
migration/savevm.c | 24 ++++++++++++++++++------
stubs/vmstate.c | 3 ++-
5 files changed, 31 insertions(+), 12 deletions(-)
--
2.9.3
- [Qemu-devel] [PATCH 0/3] Protect against long IDs,
Dr. David Alan Gilbert (git) <=