summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libdiskfs/io-read.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/libdiskfs/io-read.c b/libdiskfs/io-read.c
index 9c7a5259..a25f3801 100644
--- a/libdiskfs/io-read.c
+++ b/libdiskfs/io-read.c
@@ -47,7 +47,9 @@ diskfs_S_io_read (struct protid *cred,
if (off == -1)
off = cred->po->filepointer;
- if (off + maxread > np->dn_stat.st_size)
+ if (off > np->dn_stat.st_size)
+ maxread = 0;
+ else if (off + maxread > np->dn_stat.st_size)
maxread = np->dn_stat.st_size - off;
if (maxread > *datalen)