[CIFS] make sure that DFS pathnames are properly formed
authorSteve French <sfrench@us.ibm.com>
Thu, 18 Dec 2008 01:41:20 +0000 (01:41 +0000)
committerSteve French <sfrench@us.ibm.com>
Fri, 26 Dec 2008 02:29:13 +0000 (02:29 +0000)
commitc6fbba0546d3ead18d4a623e76e28bcbaa66a325
treefa2789812091b4feb35bcb9bcae0979ef1d588c5
parentac6a3ef405f314c206906463ca9913a826a577ee
[CIFS] make sure that DFS pathnames are properly formed

The paths in a DFS request are supposed to only have a single preceding
backslash, but we are sending them with a double backslash. This is
exposing a bug in Windows where it also sends a path in the response
that has a double backslash.

The existing code that builds the mount option string however expects a
double backslash prefix in a couple of places when it tries to use the
path returned by build_path_from_dentry. Fix compose_mount_options to
expect properly formed DFS paths (single backslash at front).

Also clean up error handling in that function. There was a possible
NULL pointer dereference and situations where a partially built option
string would be returned.

Tested against Samba 3.0.28-ish server and Samba 3.3 and Win2k8.

CC: Stable <stable@kernel.org>
Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
fs/cifs/CHANGES
fs/cifs/cifs_dfs_ref.c