qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 1/5] virtio-pci: ignore unaligned read/write in virtio_address_space_read()/write()
@ 2015-07-13  5:46 Jason Wang
  2015-07-13  5:46 ` [Qemu-devel] [PATCH 2/5] virtio-blk: disable scsi passthrough for 1.0 device Jason Wang
                   ` (4 more replies)
  0 siblings, 5 replies; 50+ messages in thread
From: Jason Wang @ 2015-07-13  5:46 UTC (permalink / raw)
  To: qemu-devel, mst; +Cc: Jason Wang

We abort on unaligned read/write in
virtio_address_space_read()/write() but since len in under control of
guest so qemu will simply crash when booting a modern guest (guest is
try to read when len is zero). Fix this by ignoring unaligned write or
read.

Fixes 1e40356ce5f6ccfa0bb57104a533c62952c560ce
("virtio fix cfg endian-ness for BE targets")
Signed-off-by: Jason Wang <jasowang@redhat.com>
---
 hw/virtio/virtio-pci.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
index ccca2b6..bed9735 100644
--- a/hw/virtio/virtio-pci.c
+++ b/hw/virtio/virtio-pci.c
@@ -466,8 +466,8 @@ void virtio_address_space_write(AddressSpace *as, hwaddr addr,
      */
     addr &= ~(len - 1);
 
-    /* Make sure caller aligned buf properly */
-    assert(!(((uintptr_t)buf) & (len - 1)));
+    if (!(((uintptr_t)buf) & (len - 1)))
+        return;
 
     switch (len) {
     case 1:
@@ -498,8 +498,8 @@ virtio_address_space_read(AddressSpace *as, hwaddr addr, uint8_t *buf, int len)
      */
     addr &= ~(len - 1);
 
-    /* Make sure caller aligned buf properly */
-    assert(!(((uintptr_t)buf) & (len - 1)));
+    if (!(((uintptr_t)buf) & (len - 1)))
+        return;
 
     switch (len) {
     case 1:
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 50+ messages in thread

end of thread, other threads:[~2015-07-17  7:18 UTC | newest]

Thread overview: 50+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-07-13  5:46 [Qemu-devel] [PATCH 1/5] virtio-pci: ignore unaligned read/write in virtio_address_space_read()/write() Jason Wang
2015-07-13  5:46 ` [Qemu-devel] [PATCH 2/5] virtio-blk: disable scsi passthrough for 1.0 device Jason Wang
2015-07-13  7:46   ` Michael S. Tsirkin
2015-07-13  9:00     ` Jason Wang
2015-07-13  9:56       ` Kevin Wolf
2015-07-13 11:51         ` Cornelia Huck
2015-07-13 12:22           ` Michael S. Tsirkin
2015-07-13 12:30             ` Cornelia Huck
2015-07-13 12:36               ` Michael S. Tsirkin
2015-07-13 13:20                 ` Cornelia Huck
2015-07-13 14:34                   ` Paolo Bonzini
2015-07-13 14:41                     ` Cornelia Huck
2015-07-13 15:13                       ` Paolo Bonzini
2015-07-13 15:35                   ` Michael S. Tsirkin
2015-07-14 17:43                     ` Cornelia Huck
2015-07-15 10:59                       ` Michael S. Tsirkin
2015-07-15 11:46                         ` Cornelia Huck
2015-07-15 12:01                           ` Michael S. Tsirkin
2015-07-15 12:43                             ` Cornelia Huck
2015-07-15 13:16                               ` Michael S. Tsirkin
2015-07-15 13:40                                 ` Cornelia Huck
2015-07-15 14:11                                   ` Michael S. Tsirkin
2015-07-15 14:30                                     ` Cornelia Huck
2015-07-15 14:39                                       ` Michael S. Tsirkin
2015-07-15 15:38                                         ` Cornelia Huck
2015-07-15 18:51                                           ` Michael S. Tsirkin
2015-07-16 12:37                                             ` Cornelia Huck
2015-07-16 12:47                                               ` Michael S. Tsirkin
2015-07-16 17:22                                                 ` Paolo Bonzini
2015-07-17  7:18                                                   ` Cornelia Huck
2015-07-13 11:27       ` Michael S. Tsirkin
2015-07-13  5:46 ` [Qemu-devel] [PATCH 3/5] virtio-blk: set VIRTIO_F_ANY_LAYOUT when 1.0 is supported Jason Wang
2015-07-13  5:46 ` [Qemu-devel] [PATCH 4/5] Revert "virtio-net: enable virtio 1.0" Jason Wang
2015-07-13  6:16   ` Cornelia Huck
2015-07-13  7:22     ` Michael S. Tsirkin
2015-07-13  8:46       ` Cornelia Huck
2015-07-13  8:29     ` Jason Wang
2015-07-13  5:46 ` [Qemu-devel] [PATCH 5/5] virtio-net: unbreak any layout Jason Wang
2015-07-13  6:50   ` Paolo Bonzini
2015-07-13  8:30     ` Jason Wang
2015-07-13  7:24   ` Michael S. Tsirkin
2015-07-13  8:22     ` Michael S. Tsirkin
2015-07-13 10:54       ` Greg Kurz
2015-07-13 11:13         ` Michael S. Tsirkin
2015-07-13  8:30     ` Jason Wang
2015-07-13  7:36 ` [Qemu-devel] [PATCH 1/5] virtio-pci: ignore unaligned read/write in virtio_address_space_read()/write() Michael S. Tsirkin
2015-07-13  7:53   ` Gerd Hoffmann
2015-07-13  8:00     ` Michael S. Tsirkin
2015-07-13  8:39       ` Gerd Hoffmann
2015-07-13  8:37   ` Jason Wang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).