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