lkml.org 
[lkml]   [1999]   [Sep]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Subject[PATCH] isofs may compute wrong size for large files
From
Date

Hi,

There's a bug in fs/isofs/inode.c which causes it to get the wrong
size for some large files. It's triggered by having the
iso_directory_entrys describing a file go across more than one block,
with a empty record at the end of the first block. There's code to
handle that case, but it's slightly wrong.

The CD in question contains mp3s, and was burned on NT. I suspect
that mkisofs doesn't lay out the dir entries the same way, or this
would have been noticed earlier.


Todd

p.s. Is there an official maintainer of isofs who should get this?
While tracking this down I noticed there have been a few isofs patches
to lkml recently that didn't get into the kernel...


--- fs/isofs/inode.c.orig Thu Aug 26 17:18:06 1999
+++ fs/isofs/inode.c Tue Sep 14 10:53:07 1999
@@ -1062,7 +1062,6 @@
goto out_noread;
}
pnt = ((unsigned char *) bh->b_data + offset);
- raw_inode = ((struct iso_directory_record *) pnt);
/*
* Note: this is invariant even if the record
* spans buffers and must be copied ...
@@ -1074,6 +1073,7 @@
ino = (ino & ~(ISOFS_BLOCK_SIZE - 1)) + ISOFS_BLOCK_SIZE;
continue;
}
+ raw_inode = ((struct iso_directory_record *) pnt);

/* Check whether the raw inode spans the buffer ... */
if (offset + reclen > bufsize){
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:53    [W:0.029 / U:0.300 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site