diff options
| author | jakllsch <jakllsch@NetBSD.org> | 2010-03-22 16:57:54 +0000 |
|---|---|---|
| committer | jakllsch <jakllsch@NetBSD.org> | 2010-03-22 16:57:54 +0000 |
| commit | a6fc850cd8f8d8635d50b5f8b69dc8cb09f2256f (patch) | |
| tree | 1a498c1b163a7f8e287d7c22aef379cc4858c221 /sys/lib/libsa | |
| parent | b1400f88924bfbea1f7283f403fd5099a9f33438 (diff) | |
Ensure cd9660_read() gives accurate EOF indication.
Should fix PR/42983.
Diffstat (limited to 'sys/lib/libsa')
| -rw-r--r-- | sys/lib/libsa/cd9660.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/lib/libsa/cd9660.c b/sys/lib/libsa/cd9660.c index f71c2695a27..e4b6303a0fd 100644 --- a/sys/lib/libsa/cd9660.c +++ b/sys/lib/libsa/cd9660.c @@ -1,4 +1,4 @@ -/* $NetBSD: cd9660.c,v 1.24 2008/11/19 12:36:41 ad Exp $ */ +/* $NetBSD: cd9660.c,v 1.25 2010/03/22 16:57:54 jakllsch Exp $ */ /* * Copyright (C) 1996 Wolfgang Solfrank. @@ -345,6 +345,8 @@ cd9660_read(struct open_file *f, void *start, size_t size, size_t *resid) size -= ISO_DEFAULT_BLOCK_SIZE; } } + if(fp->off > fp->size) + size += fp->off - fp->size; if (resid) *resid = size; return rc; |
