kern/98478: [PATCH]For big size of file of cd9660

Hisamitsu Kikushima hisamitu at uranus.dti.ne.jp
Sun Jun 4 01:20:18 PDT 2006


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


	
>Description:
 had the file of a big size (2G byte over) can read. 
 It is not division that tests everything though the problem doesn't occur at present in my environment. 
 I greement 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. 

>How-To-Repeat:
	
>Fix:

	

--- isofs-64bit.diff begins here ---
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;
  };
--- isofs-64bit.diff ends here ---


>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list