[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 52/56] Bugfix for loading multiboot kernels
From: |
Michael Roth |
Subject: |
[Qemu-devel] [PATCH 52/56] Bugfix for loading multiboot kernels |
Date: |
Tue, 13 Aug 2013 10:11:16 -0500 |
From: Martijn van den Broek <address@hidden>
This patch fixes a bug in rom_copy introduced by
commit d60fa42e8bae39440f997ebfe8fe328269a57d16.
rom_copy failed to load roms with a "datasize" of 0.
As a result, multiboot kernels were not loaded correctly
when they contain a segment with a "file size" of 0.
https://bugs.launchpad.net/qemu/+bug/1208944
Signed-off-by: Martijn van den Broek <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Message-id: address@hidden
Signed-off-by: Anthony Liguori <address@hidden>
(cherry picked from commit 0dd5ce38fbeb2fb97b01cc8c1c97292211e48ee6)
Signed-off-by: Michael Roth <address@hidden>
---
hw/core/loader.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/hw/core/loader.c b/hw/core/loader.c
index 7507914..8514eaf 100644
--- a/hw/core/loader.c
+++ b/hw/core/loader.c
@@ -779,9 +779,6 @@ int rom_copy(uint8_t *dest, hwaddr addr, size_t size)
if (rom->addr > end) {
break;
}
- if (!rom->data) {
- continue;
- }
d = dest + (rom->addr - addr);
s = rom->data;
@@ -791,7 +788,9 @@ int rom_copy(uint8_t *dest, hwaddr addr, size_t size)
l = dest - d;
}
- memcpy(d, s, l);
+ if (l > 0) {
+ memcpy(d, s, l);
+ }
if (rom->romsize > rom->datasize) {
/* If datasize is less than romsize, it means that we didn't
--
1.7.9.5
- [Qemu-devel] [PATCH 41/56] qapi: Rename ChardevBackend member "memory" to "ringbuf", (continued)
- [Qemu-devel] [PATCH 41/56] qapi: Rename ChardevBackend member "memory" to "ringbuf", Michael Roth, 2013/08/13
- [Qemu-devel] [PATCH 43/56] pci-bridge: update mappings for migration/restore, Michael Roth, 2013/08/13
- [Qemu-devel] [PATCH 45/56] chardev: fix CHR_EVENT_OPENED events for mux chardevs, Michael Roth, 2013/08/13
- [Qemu-devel] [PATCH 44/56] xhci: fix segfault, Michael Roth, 2013/08/13
- [Qemu-devel] [PATCH 48/56] iov: handle EOF in iov_send_recv, Michael Roth, 2013/08/13
- [Qemu-devel] [PATCH 49/56] target-i386: Fix X86CPU error handling, Michael Roth, 2013/08/13
- [Qemu-devel] [PATCH 46/56] seccomp: add arch_prctl() to the syscall whitelist, Michael Roth, 2013/08/13
- [Qemu-devel] [PATCH 47/56] seccomp: add additional asynchronous I/O syscalls, Michael Roth, 2013/08/13
- [Qemu-devel] [PATCH 50/56] ignore SIGPIPE in qemu-img and qemu-io, Michael Roth, 2013/08/13
- [Qemu-devel] [PATCH 51/56] semaphore: fix a hangup problem under load on NetBSD hosts., Michael Roth, 2013/08/13
- [Qemu-devel] [PATCH 52/56] Bugfix for loading multiboot kernels,
Michael Roth <=
- [Qemu-devel] [PATCH 53/56] i82801b11: Fix i82801b11 PCI host bridge config space, Michael Roth, 2013/08/13
- [Qemu-devel] [PATCH 56/56] vhost: clear signalled_used_valid on vhost stop, Michael Roth, 2013/08/13
- [Qemu-devel] [PATCH 54/56] dataplane: sync virtio.c and vring.c virtqueue state, Michael Roth, 2013/08/13
- [Qemu-devel] [PATCH 32/56] block: Add return value for bdrv_flush_all(), Michael Roth, 2013/08/13
- [Qemu-devel] [PATCH 38/56] dataplane: refuse to start if device is already in use, Michael Roth, 2013/08/13
- [Qemu-devel] [PATCH 37/56] gtk: Fix compiler warning (GTK 3 deprecated function), Michael Roth, 2013/08/13
- [Qemu-devel] [PATCH 55/56] virtio: clear signalled_used_valid when switching from dataplane, Michael Roth, 2013/08/13
- [Qemu-devel] [PATCH 33/56] cpus: Add return value for vm_stop(), Michael Roth, 2013/08/13
- [Qemu-devel] [PATCH 36/56] gtk: don't use g_object_unref on GdkCursor, Michael Roth, 2013/08/13
- Re: [Qemu-devel] [Qemu-stable] Patch Round-up for stable 1.5.3, freeze on 2013-08-16, Doug Goldstein, 2013/08/14