aboutsummaryrefslogtreecommitdiff
path: root/sys/boot/zfs
diff options
context:
space:
mode:
authorAndriy Gapon <avg@FreeBSD.org>2012-09-11 07:15:11 +0000
committerAndriy Gapon <avg@FreeBSD.org>2012-09-11 07:15:11 +0000
commit7ae0dc79b7791cb1b3b5c10032dfaf75f8384307 (patch)
tree1d70926293c3ae58b29d4b583d690861d306623e /sys/boot/zfs
parent4b7fc6b08e2f50414783f5f7b79c25eb6a500714 (diff)
downloadsrc-7ae0dc79b7791cb1b3b5c10032dfaf75f8384307.tar.gz
src-7ae0dc79b7791cb1b3b5c10032dfaf75f8384307.zip
zfs boot: add a size check for a value in fzap_lookup
MFC after: 25 days
Notes
Notes: svn path=/head/; revision=240349
Diffstat (limited to 'sys/boot/zfs')
-rw-r--r--sys/boot/zfs/zfsimpl.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/boot/zfs/zfsimpl.c b/sys/boot/zfs/zfsimpl.c
index 251f97e985cb..d387a6e46578 100644
--- a/sys/boot/zfs/zfsimpl.c
+++ b/sys/boot/zfs/zfsimpl.c
@@ -1355,6 +1355,8 @@ fzap_lookup(const spa_t *spa, const dnode_phys_t *dnode, const char *name, uint6
zc = &ZAP_LEAF_CHUNK(&zl, zc->l_entry.le_next);
}
if (fzap_name_equal(&zl, zc, name)) {
+ if (zc->l_entry.le_value_intlen * zc->l_entry.le_value_numints > 8)
+ return (E2BIG);
*value = fzap_leaf_value(&zl, zc);
return (0);
}