[CIFS] Fixed build warning in is_ip
authorIgor Mammedov <niallain@gmail.com>
Thu, 8 May 2008 20:48:42 +0000 (20:48 +0000)
committerSteve French <sfrench@us.ibm.com>
Thu, 8 May 2008 20:48:42 +0000 (20:48 +0000)
Signed-off-by: Igor Mammedov <niallain@gmail.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
fs/cifs/cifsproto.h
fs/cifs/connect.c
fs/cifs/netmisc.c

index a249a29..d481f6c 100644 (file)
@@ -70,7 +70,7 @@ extern unsigned int smbCalcSize(struct smb_hdr *ptr);
 extern unsigned int smbCalcSize_LE(struct smb_hdr *ptr);
 extern int decode_negTokenInit(unsigned char *security_blob, int length,
                        enum securityEnum *secType);
-extern int cifs_inet_pton(int, char *source, void *dst);
+extern int cifs_inet_pton(const int, const char *source, void *dst);
 extern int map_smb_to_linux_error(struct smb_hdr *smb, int logErr);
 extern void header_assemble(struct smb_hdr *, char /* command */ ,
                            const struct cifsTconInfo *, int /* length of
index 957998e..791ca5c 100644 (file)
@@ -1302,6 +1302,9 @@ cifs_parse_mount_options(char *options, const char *devname,
                                                    "begin with // or \\\\ \n");
                                return 1;
                        }
+                       value = strpbrk(vol->UNC+2, "/\\");
+                       if (value)
+                               *value = '\\';
                } else {
                        printk(KERN_WARNING "CIFS: UNC name too long\n");
                        return 1;
index 3b5a5ce..00f4cff 100644 (file)
@@ -132,47 +132,17 @@ static const struct smb_to_posix_error mapping_table_ERRHRD[] = {
        {0, 0}
 };
 
-
-/* if the mount helper is missing we need to reverse the 1st slash
-   from '/' to backslash in order to format the UNC properly for
-   ip address parsing and for tree connect (unless the user
-   remembered to put the UNC name in properly). Fortunately we do
-   not have to call this twice (we check for IPv4 addresses
-   first, so it is already converted by the time we
-   try IPv6 addresses */
-static int canonicalize_unc(char *cp)
-{
-       int i;
-
-       for (i = 0; i <= 46 /* INET6_ADDRSTRLEN */ ; i++) {
-               if (cp[i] == 0)
-                       break;
-               if (cp[i] == '\\')
-                       break;
-               if (cp[i] == '/') {
-                       cFYI(DBG2, ("change slash to \\ in malformed UNC"));
-                       cp[i] = '\\';
-                       return 1;
-               }
-       }
-       return 0;
-}
-
 /* Convert string containing dotted ip address to binary form */
 /* returns 0 if invalid address */
 
 int
-cifs_inet_pton(int address_family, char *cp, void *dst)
+cifs_inet_pton(const int address_family, const char *cp, void *dst)
 {
        int ret = 0;
 
        /* calculate length by finding first slash or NULL */
        if (address_family == AF_INET) {
                ret = in4_pton(cp, -1 /* len */, dst, '\\', NULL);
-               if (ret == 0) {
-                       if (canonicalize_unc(cp))
-                               ret = in4_pton(cp, -1, dst, '\\', NULL);
-               }
        } else if (address_family == AF_INET6) {
                ret = in6_pton(cp, -1 /* len */, dst , '\\', NULL);
        }