Messages in this thread Patch in this message | | | Subject | [PATCH] isofs may compute wrong size for large files | From | Todd Sabin <> | Date | 14 Sep 1999 11:32:38 -0400 |
| |
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/
| |