From b4c8bfcdf90126543286b77e524a4c451fdd2bd0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Fri, 25 Sep 2020 15:45:10 +0200 Subject: [PATCH] Catching right error for read-only block devices. --- .../li/cil/circuity/vm/device/virtio/VirtIOBlockDevice.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/li/cil/circuity/vm/device/virtio/VirtIOBlockDevice.java b/src/main/java/li/cil/circuity/vm/device/virtio/VirtIOBlockDevice.java index 3e752a47..a52f465e 100644 --- a/src/main/java/li/cil/circuity/vm/device/virtio/VirtIOBlockDevice.java +++ b/src/main/java/li/cil/circuity/vm/device/virtio/VirtIOBlockDevice.java @@ -7,6 +7,7 @@ import li.cil.circuity.vm.device.BlockDevice; import java.nio.ByteBuffer; import java.nio.ByteOrder; +import java.nio.ReadOnlyBufferException; public final class VirtIOBlockDevice extends AbstractVirtIODevice implements Steppable { private static final int VIRTIO_BLK_SECTOR_SIZE = 512; @@ -238,7 +239,7 @@ public final class VirtIOBlockDevice extends AbstractVirtIODevice implements Ste int status = VIRTIO_BLK_S_OK; try { chain.get(block.getView(offset, chain.readableBytes())); - } catch (final IllegalArgumentException e) { + } catch (final IllegalArgumentException | ReadOnlyBufferException e) { chain.skip(chain.readableBytes()); status = VIRTIO_BLK_S_IOERR; }