Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 31 May 2006 23:42:10 +0900 (JST)
From:      Hisamitsu Kikushima <hisamitu@uranus.dti.ne.jp>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   kern/98479: For big file size of cd9660
Message-ID:  <200605311442.k4VEgAOm000980@PPPa2121.tokyo-ip.dti.ne.jp>
Resent-Message-ID: <200606040820.k548KHSh002917@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         98479
>Category:       kern
>Synopsis:       For big file size of cd9660
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          update
>Submitter-Id:   current-users
>Arrival-Date:   Sun Jun 04 08:20:17 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     Hisamitsu Kikushima
>Release:        FreeBSD 6.1-RELEASE i386
>Organization:
(none)
>Environment:
System: FreeBSD PPPa2121.tokyo-ip.dti.ne.jp 6.1-RELEASE FreeBSD 6.1-RELEASE #1: Sun May 21 09:16:54 JST 2006 root@PPPa338.tokyo-ip.dti.ne.jp:/usr/obj/usr/src/sys/AKNL i386

>Description:
 I had the file of big size (2G byte over) can read.
 At present, the problem doesn't occur in my environment. However, it is not division that tests everything.
 The agreement of cd9660 to the standard is not investigated. However, I thought that there is especially no problem because it is only reading.
 I changed to the source of 6.1-RELEASE.

diff -crN src/sys/isofs/cd9660/cd9660_node.h src-edit/sys/isofs/cd9660/cd9660_node.h
*** src/sys/isofs/cd9660/cd9660_node.h	Wed Mar 16 17:09:52 2005
--- src-edit/sys/isofs/cd9660/cd9660_node.h	Sun May 21 10:37:33 2006
***************
*** 42,48 ****
   * lookup on a 32-bit machine. If you are porting to a 64-bit
   * architecture, you should make doff_t the same as off_t.
   */
! #define doff_t	long
  
  typedef	struct	{
  	struct timespec	iso_atime;	/* time of last access */
--- 42,49 ----
   * lookup on a 32-bit machine. If you are porting to a 64-bit
   * architecture, you should make doff_t the same as off_t.
   */
! typedef	long long	doff_t;
! typedef	long long	isize_t;
  
  typedef	struct	{
  	struct timespec	iso_atime;	/* time of last access */
***************
*** 68,76 ****
  	doff_t	i_offset;	/* offset of free space in directory */
  	ino_t	i_ino;		/* inode number of found directory */
  
! 	long iso_extent;	/* extent of file */
! 	long i_size;
! 	long iso_start;		/* actual start of data of file (may be different */
  				/* from iso_extent, if file has extended attributes) */
  	ISO_RRIP_INODE	inode;
  };
--- 69,77 ----
  	doff_t	i_offset;	/* offset of free space in directory */
  	ino_t	i_ino;		/* inode number of found directory */
  
! 	isize_t iso_extent;	/* extent of file */
! 	isize_t i_size;
! 	isize_t iso_start;	/* actual start of data of file (may be different */
  				/* from iso_extent, if file has extended attributes) */
  	ISO_RRIP_INODE	inode;
  };
>How-To-Repeat:
 none.
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200605311442.k4VEgAOm000980>