lkml.org 
[lkml]   [2002]   [May]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Subject[PATCH] Fix the handling of dentry on msdos_lookup() (1/4)
From
Date
Hi,

If d_splice_alias() doesn't find the alias dentry, it returns NULL.
Then, msdos_lookup() dereference the NULL, and Oops.
This patch fixes this.

Side of vfat_lookup() is cleanup only.

Please apply.
--
OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>

diff -urN linux-2.5.18/fs/msdos/namei.c fat_dentry-2.5.18/fs/msdos/namei.c
--- linux-2.5.18/fs/msdos/namei.c Sat May 25 16:52:08 2002
+++ fat_dentry-2.5.18/fs/msdos/namei.c Sat May 25 17:09:22 2002
@@ -222,22 +222,17 @@
if (res)
goto out;
add:
- if (inode) {
- dentry = d_splice_alias(inode, dentry);
- dentry->d_op = &msdos_dentry_operations;
- } else {
- d_add(dentry, inode);
- dentry = NULL;
- }
res = 0;
+ dentry = d_splice_alias(inode, dentry);
+ if (dentry)
+ dentry->d_op = &msdos_dentry_operations;
out:
if (bh)
fat_brelse(sb, bh);
unlock_kernel();
- if (res)
- return ERR_PTR(res);
- else
+ if (!res)
return dentry;
+ return ERR_PTR(res);
}

/***** Creates a directory entry (name is already formatted). */
diff -urN linux-2.5.18/fs/vfat/namei.c fat_dentry-2.5.18/fs/vfat/namei.c
--- linux-2.5.18/fs/vfat/namei.c Sat May 25 16:52:14 2002
+++ fat_dentry-2.5.18/fs/vfat/namei.c Sat May 25 17:09:22 2002
@@ -1021,16 +1021,12 @@
unlock_kernel();
dentry->d_op = &vfat_dentry_ops[table];
dentry->d_time = dentry->d_parent->d_inode->i_version;
- if (inode) {
- dentry = d_splice_alias(inode, dentry);
- if (dentry) {
- dentry->d_op = &vfat_dentry_ops[table];
- dentry->d_time = dentry->d_parent->d_inode->i_version;
- }
- return dentry;
+ dentry = d_splice_alias(inode, dentry);
+ if (dentry) {
+ dentry->d_op = &vfat_dentry_ops[table];
+ dentry->d_time = dentry->d_parent->d_inode->i_version;
}
- d_add(dentry,inode);
- return NULL;
+ return dentry;
}

int vfat_create(struct inode *dir,struct dentry* dentry,int mode)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
\
 
 \ /
  Last update: 2005-03-22 13:26    [W:0.081 / U:0.088 seconds]
©2003-2014 Jasper Spaans. hosted at Digital Ocean