Page MenuHomeFreeBSD

D15847.id43877.diff
No OneTemporary

D15847.id43877.diff

Index: stand/i386/libi386/biosdisk.c
===================================================================
--- stand/i386/libi386/biosdisk.c
+++ stand/i386/libi386/biosdisk.c
@@ -896,10 +896,17 @@
/* GELI needs the offset relative to the partition start */
p_off = alignlba - dskp.start;
- err = geli_read(&dskp, p_off * BD(dev).bd_sectorsize, (u_char *)tmpbuf,
- alignblks * BD(dev).bd_sectorsize);
- if (err)
- return (err);
+ /* Only decrypt reads from inside the encrypted partition boundry */
+ if (dskp.start > 0 && dblk >= dskp.start) {
+ err = geli_read(&dskp, p_off * BD(dev).bd_sectorsize, (u_char *)tmpbuf,
+ alignblks * BD(dev).bd_sectorsize);
+ if (err)
+ return (err);
+ } else {
+ DEBUG("bd_read: Not decrypted read from %lld, outside "
+ "of partition bounds: lower=%llu, upper=%llu\n",
+ dblk, dskp.start, BD(dev).bd_sectors);
+ }
if (tmpbuf != dest) {
bcopy(tmpbuf + diff, dest, blks * BD(dev).bd_sectorsize);

File Metadata

Mime Type
text/plain
Expires
Wed, Apr 22, 10:47 AM (14 h, 58 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31971612
Default Alt Text
D15847.id43877.diff (983 B)

Event Timeline