diff options
author | rnoland <rnoland@FreeBSD.org> | 2009-11-14 16:14:51 +0000 |
---|---|---|
committer | rnoland <rnoland@FreeBSD.org> | 2009-11-14 16:14:51 +0000 |
commit | a05c128d84eed902b3ea1755dd5da8719268dc01 (patch) | |
tree | 015efcf4faabb164f24b8cb15def0a133b8b0837 /sys/cddl/boot | |
parent | b469a0b405645ec5afb8ab1498ef3de40eb3c984 (diff) | |
download | FreeBSD-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.c | 3 |
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; |