aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeff Layton <jlayton@redhat.com>2007-05-04 23:27:49 -0400
committerSteve French <sfrench@us.ibm.com>2007-05-04 23:27:49 -0400
commit8426c39c1289765a11fc9b9523212ed368ceebd8 (patch)
treefc7cab82fafe76d11c77549ff16759ab86c88682
parent796e5661f6b6be1600b3ab47c61ce61cf3e7a353 (diff)
[CIFS] Make sec=none force an anonymous mount
We had a customer report that attempting to make CIFS mount with a null username (i.e. doing an anonymous mount) doesn't work. Looking through the code, it looks like CIFS expects a NULL username from userspace in order to trigger an anonymous mount. The mount.cifs code doesn't seem to ever pass a null username to the kernel, however. It looks also like the kernel can take a sec=none option, but it only seems to look at it if the username is already NULL. This seems redundant and effectively makes sec=none useless. The following patch makes sec=none force an anonymous mount. Signed-off-by: Steve French <sfrench@us.ibm.com>
-rw-r--r--fs/cifs/CHANGES4
-rw-r--r--fs/cifs/README20
-rw-r--r--fs/cifs/connect.c8
3 files changed, 24 insertions, 8 deletions
diff --git a/fs/cifs/CHANGES b/fs/cifs/CHANGES
index 62dcf6325861..a9b6bc5157b8 100644
--- a/fs/cifs/CHANGES
+++ b/fs/cifs/CHANGES
@@ -6,7 +6,9 @@ handle DNS host to ipv6 name translation). Accept override of uid or gid
6on mount even when Unix Extensions are negotiated (it used to be ignored 6on mount even when Unix Extensions are negotiated (it used to be ignored
7when Unix Extensions were ignored). This allows users to override the 7when Unix Extensions were ignored). This allows users to override the
8default uid and gid for files when they are certain that the uids or 8default uid and gid for files when they are certain that the uids or
9gids on the server do not match those of the client. 9gids on the server do not match those of the client. Make "sec=none"
10mount override username (so that null user connection is attempted)
11to match what documentation said.
10 12
11Version 1.48 13Version 1.48
12------------ 14------------
diff --git a/fs/cifs/README b/fs/cifs/README
index 93fe3594274f..80fcfb82eafd 100644
--- a/fs/cifs/README
+++ b/fs/cifs/README
@@ -472,7 +472,7 @@ including:
472 -V print mount.cifs version 472 -V print mount.cifs version
473 -? display simple usage information 473 -? display simple usage information
474 474
475With recent 2.6 kernel versions of modutils, the version of the cifs kernel 475With most 2.6 kernel versions of modutils, the version of the cifs kernel
476module can be displayed via modinfo. 476module can be displayed via modinfo.
477 477
478Misc /proc/fs/cifs Flags and Debug Info 478Misc /proc/fs/cifs Flags and Debug Info
@@ -521,8 +521,22 @@ SecurityFlags Flags which control security negotiation and
521 must use plaintext passwords 0x20020 521 must use plaintext passwords 0x20020
522 (reserved for future packet encryption) 0x00040 522 (reserved for future packet encryption) 0x00040
523 523
524cifsFYI If set to one, additional debug information is 524cifsFYI If set to non-zero value, additional debug information
525 logged to the system error log. (default 0) 525 will be logged to the system error log. This field
526 contains three flags controlling different classes of
527 debugging entries. The maximum value it can be set
528 to is 7 which enables all debugging points (default 0).
529 Some debugging statements are not compiled into the
530 cifs kernel unless CONFIG_CIFS_DEBUG2 is enabled in the
531 kernel configuration. cifsFYI may be set to one or
532 nore of the following flags (7 sets them all):
533
534 log cifs informational messages 0x01
535 log return codes from cifs entry points 0x02
536 log slow responses (ie which take longer than one second)
537 CONFIG_CIFS_STATS2 must be enabled in .config 0x03
538
539
526traceSMB If set to one, debug information is logged to the 540traceSMB If set to one, debug information is logged to the
527 system error log with the start of smb requests 541 system error log with the start of smb requests
528 and responses (default 0) 542 and responses (default 0)
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
index cf40e245fcf4..216fb625843f 100644
--- a/fs/cifs/connect.c
+++ b/fs/cifs/connect.c
@@ -1721,12 +1721,12 @@ cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb,
1721 return -EINVAL; 1721 return -EINVAL;
1722 } 1722 }
1723 1723
1724 if (volume_info.username) { 1724 if (volume_info.nullauth) {
1725 cFYI(1,("null user"));
1726 volume_info.username = NULL;
1727 } else if (volume_info.username) {
1725 /* BB fixme parse for domain name here */ 1728 /* BB fixme parse for domain name here */
1726 cFYI(1, ("Username: %s ", volume_info.username)); 1729 cFYI(1, ("Username: %s ", volume_info.username));
1727
1728 } else if (volume_info.nullauth) {
1729 cFYI(1,("null user"));
1730 } else { 1730 } else {
1731 cifserror("No username specified"); 1731 cifserror("No username specified");
1732 /* In userspace mount helper we can get user name from alternate 1732 /* In userspace mount helper we can get user name from alternate