patch-2.4.27 linux-2.4.27/fs/udf/file.c
Next file: linux-2.4.27/fs/xfs/Makefile
Previous file: linux-2.4.27/fs/stat.c
Back to the patch index
Back to the overall index
- Lines: 24
- Date:
2004-08-07 16:26:06.020402906 -0700
- Orig file:
linux-2.4.26/fs/udf/file.c
- Orig date:
2002-08-02 17:39:45.000000000 -0700
diff -urN linux-2.4.26/fs/udf/file.c linux-2.4.27/fs/udf/file.c
@@ -155,7 +155,8 @@
{
ssize_t retval;
struct inode *inode = file->f_dentry->d_inode;
- int err, pos;
+ int err;
+ loff_t pos;
if (UDF_I_ALLOCTYPE(inode) == ICBTAG_FLAG_AD_IN_ICB)
{
@@ -164,8 +165,11 @@
else
pos = *ppos;
- if (inode->i_sb->s_blocksize < (udf_file_entry_alloc_offset(inode) +
- pos + count))
+ if (pos < 0 || pos + count < pos)
+ return 0;
+
+ if (inode->i_sb->s_blocksize - udf_file_entry_alloc_offset(inode) <
+ pos + count)
{
udf_expand_file_adinicb(inode, pos + count, &err);
if (UDF_I_ALLOCTYPE(inode) == ICBTAG_FLAG_AD_IN_ICB)
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)