Page MenuHomeFreeBSD

D10559.diff
No OneTemporary

D10559.diff

Index: head/sys/boot/efi/libefi/efipart.c
===================================================================
--- head/sys/boot/efi/libefi/efipart.c
+++ head/sys/boot/efi/libefi/efipart.c
@@ -888,6 +888,7 @@
char *blkbuf;
size_t blkoff, blksz;
int error;
+ size_t diskend, readstart;
if (dev == NULL || blk < 0)
return (EINVAL);
@@ -925,7 +926,15 @@
/* make sure we don't read past disk end */
if ((off + size) / blkio->Media->BlockSize > d_offset + disk_blocks) {
- size = d_offset + disk_blocks - off / blkio->Media->BlockSize;
+ diskend = d_offset + disk_blocks;
+ readstart = off / blkio->Media->BlockSize;
+
+ if (diskend <= readstart) {
+ *rsize = 0;
+
+ return (EIO);
+ }
+ size = diskend - readstart;
size = size * blkio->Media->BlockSize;
}

File Metadata

Mime Type
text/plain
Expires
Sat, Dec 21, 10:18 AM (17 h, 45 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
15540332
Default Alt Text
D10559.diff (786 B)

Event Timeline