diff --git a/sbin/dump/traverse.c b/sbin/dump/traverse.c index d3415b70b4e..211cfa6370b 100644 --- a/sbin/dump/traverse.c +++ b/sbin/dump/traverse.c @@ -925,7 +925,7 @@ loop: cnt = cread(diskfd, tmpbuf, secsize, offset - base); if (cnt != secsize) goto bad; - xfer = secsize - base; + xfer = MIN(secsize - base, size); offset += xfer; bytes -= xfer; resid = bytes % secsize;