From e3f630b73c159078a6991161c5255048b16d366f Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Fri, 21 Mar 2014 02:56:56 +0100 Subject: [PATCH] PV-GRUB: fix blk access at end of disk GRUB usually always loads a whole disk track, even if that means going beyond the end of the disk. We thus have to gracefully return an error, instead of letting the blkfront go panic. Signed-off-by: Samuel Thibault Acked-by: Ian Campbell (cherry picked from commit 51e18e41e39a682de5a2e60ad86048dc6344efec) (cherry picked from commit 03eb5134056d61167e6781eecf7e570b491bda73) --- stubdom/grub/mini-os.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/stubdom/grub/mini-os.c b/stubdom/grub/mini-os.c index 8cecf9013f..64ab962fee 100644 --- a/stubdom/grub/mini-os.c +++ b/stubdom/grub/mini-os.c @@ -126,6 +126,9 @@ biosdisk (int read, int drive, struct geometry *geometry, if (i >= blk_nb) return -1; + if (sector + nsec > geometry->total_sectors) + return -1; + aiocb.aio_dev = blk_dev[i]; aiocb.aio_buf = addr; aiocb.aio_nbytes = (size_t)nsec * blk_info[i].sector_size; -- 2.39.5