[linux-cifs-client] [patch] skip posix open if nameidata is null
shirishpargaonkar at gmail.com
shirishpargaonkar at gmail.com
Fri Apr 2 11:32:58 MDT 2010
While creating a file on a server which supports unix extensions
such as Samba, if a file is being created which does not supply
nameidata (i.e. nd is null), cifs client can oops when calling
cifs_posix_open.
The simplest solution is, do not open a file using posix semantics
if nameidata parameter is NULL even if server supports posix semantics.
I do not see a way to reach vfsmount (structure) field if nameidata
is not supplied to call posix open (cifs_posix_open).
Signed-off-by: Shirish Pargaonkar <shirishpargaonkar at gmail.com>
Reported-by: Eugene Teo <eugeneteo at kernel.sg>
---
diff --git a/fs/cifs/dir.c b/fs/cifs/dir.c
index e9f7ecc..eef8d83 100644
--- a/fs/cifs/dir.c
+++ b/fs/cifs/dir.c
@@ -317,7 +317,7 @@ cifs_create(struct inode *inode, struct dentry *direntry, int mode,
else
oflags = FMODE_READ;
- if (tcon->unix_ext && (tcon->ses->capabilities & CAP_UNIX) &&
+ if (nd && tcon->unix_ext && (tcon->ses->capabilities & CAP_UNIX) &&
(CIFS_UNIX_POSIX_PATH_OPS_CAP &
le64_to_cpu(tcon->fsUnixInfo.Capability))) {
rc = cifs_posix_open(full_path, &newinode, nd->path.mnt,
More information about the linux-cifs-client
mailing list