svn commit: r311666 - head/sys/fs/cd9660
Conrad E. Meyer
cem at FreeBSD.org
Sun Jan 8 06:22:36 UTC 2017
Author: cem
Date: Sun Jan 8 06:22:35 2017
New Revision: 311666
URL: https://svnweb.freebsd.org/changeset/base/311666
Log:
Do not truncate inode calculation from ISO9660 block offset
PR: 190655
Reported by: Thomas Schmitt <scdbackup at gmx.net>
Obtained from: NetBSD sys/fs/cd9660/cd9660_node.c,r1.31
Modified:
head/sys/fs/cd9660/cd9660_node.c
Modified: head/sys/fs/cd9660/cd9660_node.c
==============================================================================
--- head/sys/fs/cd9660/cd9660_node.c Sun Jan 8 06:21:49 2017 (r311665)
+++ head/sys/fs/cd9660/cd9660_node.c Sun Jan 8 06:22:35 2017 (r311666)
@@ -316,7 +316,14 @@ isodirino(isodir, imp)
{
cd_ino_t ino;
- ino = (isonum_733(isodir->extent) + isonum_711(isodir->ext_attr_length))
- << imp->im_bshift;
- return (ino);
+ /*
+ * Note there is an inverse calculation in
+ * cd9660_vfsops.c:cd9660_vget_internal():
+ * ip->iso_start = ino >> imp->im_bshift;
+ * and also a calculation of the isodir pointer
+ * from an inode in cd9660_vnops.c:cd9660_readlink()
+ */
+ ino = ((cd_ino_t)isonum_733(isodir->extent) +
+ isonum_711(isodir->ext_attr_length)) << imp->im_bshift;
+ return ino;
}
More information about the svn-src-head
mailing list