summaryrefslogtreecommitdiffstats
path: root/sys/cddl/boot
diff options
context:
space:
mode:
authorrnoland <rnoland@FreeBSD.org>2009-11-14 16:14:51 +0000
committerrnoland <rnoland@FreeBSD.org>2009-11-14 16:14:51 +0000
commita05c128d84eed902b3ea1755dd5da8719268dc01 (patch)
tree015efcf4faabb164f24b8cb15def0a133b8b0837 /sys/cddl/boot
parentb469a0b405645ec5afb8ab1498ef3de40eb3c984 (diff)
downloadFreeBSD-src-a05c128d84eed902b3ea1755dd5da8719268dc01.zip
FreeBSD-src-a05c128d84eed902b3ea1755dd5da8719268dc01.tar.gz
MFC r199241
This patch addresses an overflow in the the zfs boot code and allows users to boot from zfs raidz volumes. This has been tested by a number of users and does not impact those which are not booting from zfs raidz volumes. Submitted by: Matt Reimer <mattjreimer@gmail.com>
Diffstat (limited to 'sys/cddl/boot')
-rw-r--r--sys/cddl/boot/zfs/zfssubr.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/cddl/boot/zfs/zfssubr.c b/sys/cddl/boot/zfs/zfssubr.c
index fb4444f..4013986 100644
--- a/sys/cddl/boot/zfs/zfssubr.c
+++ b/sys/cddl/boot/zfs/zfssubr.c
@@ -550,7 +550,8 @@ vdev_raidz_read(vdev_t *vdev, const blkptr_t *bp, void *buf,
uint64_t s = psize >> unit_shift;
uint64_t f = b % dcols;
uint64_t o = (b / dcols) << unit_shift;
- int q, r, c, c1, bc, col, acols, coff, devidx, asize, n;
+ uint64_t q, r, coff;
+ int c, c1, bc, col, acols, devidx, asize, n;
static raidz_col_t cols[16];
raidz_col_t *rc, *rc1;
OpenPOWER on IntegriCloud