kern/98479: For big file size of cd9660
Hisamitsu Kikushima
hisamitu at uranus.dti.ne.jp
Sun Jun 4 01:20:18 PDT 2006
>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 at 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:
More information about the freebsd-bugs
mailing list