Page MenuHomeFreeBSD

D10559.id30299.diff
No OneTemporary

D10559.id30299.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
Fri, Nov 21, 9:30 PM (7 h, 35 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
25807036
Default Alt Text
D10559.id30299.diff (786 B)

Event Timeline