summaryrefslogtreecommitdiff
path: root/sys/lib/libsa
diff options
context:
space:
mode:
authorjakllsch <jakllsch@NetBSD.org>2010-03-22 16:57:54 +0000
committerjakllsch <jakllsch@NetBSD.org>2010-03-22 16:57:54 +0000
commita6fc850cd8f8d8635d50b5f8b69dc8cb09f2256f (patch)
tree1a498c1b163a7f8e287d7c22aef379cc4858c221 /sys/lib/libsa
parentb1400f88924bfbea1f7283f403fd5099a9f33438 (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.c4
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;