summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/fs/udf/udf_vnops.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/fs/udf/udf_vnops.c b/sys/fs/udf/udf_vnops.c
index 5afb038..aa1791e 100644
--- a/sys/fs/udf/udf_vnops.c
+++ b/sys/fs/udf/udf_vnops.c
@@ -1319,6 +1319,12 @@ udf_readatoffset(struct udf_node *node, int *size, off_t offset,
fentry = node->fentry;
*data = &fentry->data[le32toh(fentry->l_ea)];
*size = le32toh(fentry->l_ad);
+ if (offset >= *size)
+ *size = 0;
+ else {
+ *data += offset;
+ *size -= offset;
+ }
return (0);
} else if (error != 0) {
return (error);
OpenPOWER on IntegriCloud