diff --git a/sbin/hastd/nv.c b/sbin/hastd/nv.c --- a/sbin/hastd/nv.c +++ b/sbin/hastd/nv.c @@ -247,11 +247,8 @@ break; } dsize = NVH_DSIZE(nvh); - if (dsize == 0) { - error = EINVAL; - break; - } - if (size < NVH_SIZE(nvh)) { + if (roundup2(dsize, 8) == 0 || + roundup2(dsize, 8) > size - NVH_HSIZE(nvh)) { error = EINVAL; break; }