Author: avg
Date: Fri Feb 27 17:29:31 2009
New Revision: 189111
URL: http://svn.freebsd.org/changeset/base/189111

Log:
  udf_readatoffset: return correct size and data pointer for data in fentry
  
  This should help correct reading of directories with data located
  in fentry.
  
  Submitted by: bde
  Approved by:  jhb (mentor)

Modified:
  head/sys/fs/udf/udf_vnops.c

Modified: head/sys/fs/udf/udf_vnops.c
==============================================================================
--- head/sys/fs/udf/udf_vnops.c Fri Feb 27 17:27:16 2009        (r189110)
+++ head/sys/fs/udf/udf_vnops.c Fri Feb 27 17:29:31 2009        (r189111)
@@ -1319,6 +1319,12 @@ udf_readatoffset(struct udf_node *node, 
                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);
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to