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