aboutsummaryrefslogtreecommitdiff
path: root/lib/libstand
diff options
context:
space:
mode:
authorAndrew Gallatin <gallatin@FreeBSD.org>2001-04-07 23:48:46 +0000
committerAndrew Gallatin <gallatin@FreeBSD.org>2001-04-07 23:48:46 +0000
commit481184b805b5c1f254df6351a364cdcbf82fce18 (patch)
tree362b0cd9d3b81d33b8a6e7a6df85eb008039056c /lib/libstand
parent6d0b13c1bafa3847fd8e718c49584215e46c6c96 (diff)
Notes
Diffstat (limited to 'lib/libstand')
-rw-r--r--lib/libstand/cd9660.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/libstand/cd9660.c b/lib/libstand/cd9660.c
index 621d30d4681e2..87ef6e92a0058 100644
--- a/lib/libstand/cd9660.c
+++ b/lib/libstand/cd9660.c
@@ -262,11 +262,12 @@ buf_read_file(f, buf_p, size_p)
size_t *size_p;
{
struct file *fp = (struct file *)f->f_fsdata;
- daddr_t blkno;
+ daddr_t blkno, blkoff;
int rc = 0;
size_t read;
blkno = fp->f_off / ISO_DEFAULT_BLOCK_SIZE + fp->f_bno;
+ blkoff = fp->f_off % ISO_DEFAULT_BLOCK_SIZE;
if (blkno != fp->f_buf_blkno) {
if (fp->f_buf == (char *)0)
@@ -283,8 +284,8 @@ buf_read_file(f, buf_p, size_p)
fp->f_buf_blkno = blkno;
}
- *buf_p = fp->f_buf + fp->f_off;
- *size_p = ISO_DEFAULT_BLOCK_SIZE - fp->f_off;
+ *buf_p = fp->f_buf + blkoff;
+ *size_p = ISO_DEFAULT_BLOCK_SIZE - blkoff;
if (*size_p > fp->f_size - fp->f_off)
*size_p = fp->f_size - fp->f_off;