diff options
author | Andriy Gapon <avg@FreeBSD.org> | 2012-09-11 07:15:11 +0000 |
---|---|---|
committer | Andriy Gapon <avg@FreeBSD.org> | 2012-09-11 07:15:11 +0000 |
commit | 7ae0dc79b7791cb1b3b5c10032dfaf75f8384307 (patch) | |
tree | 1d70926293c3ae58b29d4b583d690861d306623e /sys/boot/zfs | |
parent | 4b7fc6b08e2f50414783f5f7b79c25eb6a500714 (diff) | |
download | src-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.c | 2 |
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); } |