On Wed, Dec 1, 2010 at 8:49 AM, Jeff Layton <jlayton@xxxxxxxxxx> wrote: > A number of places that deal with RFC1001/1002 negotiations have bare > "15" or "16" values. Replace them with RFC_1001_NAME_LEN and > RFC_1001_NAME_LEN_WITH_NULL. > > The patch also cleans up some checkpatch warnings for code surrounding > the changes. This should apply cleanly on top of the patch to remove > Local_System_Name. > > Reported-by: Shirish Pargaonkar <shirishpargaonkar@xxxxxxxxx> > Signed-off-by: Jeff Layton <jlayton@xxxxxxxxxx> > --- > fs/cifs/connect.c | 37 +++++++++++++++++++------------------ > 1 files changed, 19 insertions(+), 18 deletions(-) > > diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c > index 5d48e09..a96324b 100644 > --- a/fs/cifs/connect.c > +++ b/fs/cifs/connect.c > @@ -64,8 +64,8 @@ struct smb_vol { > char *UNC; > char *UNCip; > char *iocharset; /* local code page for mapping to and from Unicode */ > - char source_rfc1001_name[16]; /* netbios name of client */ > - char target_rfc1001_name[16]; /* netbios name of server for Win9x/ME */ > + char source_rfc1001_name[RFC1001_NAME_LEN_WITH_NULL]; /* clnt nb name */ > + char target_rfc1001_name[RFC1001_NAME_LEN_WITH_NULL]; /* srvr nb name */ > uid_t cred_uid; > uid_t linux_uid; > gid_t linux_gid; > @@ -816,11 +816,11 @@ cifs_parse_mount_options(char *options, const char *devname, > * informational, only used for servers that do not support > * port 445 and it can be overridden at mount time > */ > - memset(vol->source_rfc1001_name, 0x20, 15); > - for (i = 0; i < strnlen(nodename, 15); i++) > + memset(vol->source_rfc1001_name, 0x20, RFC1001_NAME_LEN); > + for (i = 0; i < strnlen(nodename, RFC1001_NAME_LEN); i++) > vol->source_rfc1001_name[i] = toupper(nodename[i]); > > - vol->source_rfc1001_name[15] = 0; > + vol->source_rfc1001_name[RFC1001_NAME_LEN] = 0; > /* null target name indicates to use *SMBSERVR default called name > if we end up sending RFC1001 session initialize */ > vol->target_rfc1001_name[0] = 0; > @@ -1165,22 +1165,22 @@ cifs_parse_mount_options(char *options, const char *devname, > if (!value || !*value || (*value == ' ')) { > cFYI(1, "invalid (empty) netbiosname"); > } else { > - memset(vol->source_rfc1001_name, 0x20, 15); > - for (i = 0; i < 15; i++) { > - /* BB are there cases in which a comma can be > - valid in this workstation netbios name (and need > - special handling)? */ > - > - /* We do not uppercase netbiosname for user */ > + memset(vol->source_rfc1001_name, 0x20, > + RFC1001_NAME_LEN); > + /* > + * FIXME: are there cases in which a comma can > + * be valid in workstation netbios name (and > + * need special handling)? > + */ > + for (i = 0; i < RFC1001_NAME_LEN; i++) { > + /* don't ucase netbiosname for user */ > if (value[i] == 0) > break; > - else > - vol->source_rfc1001_name[i] = > - value[i]; > + vol->source_rfc1001_name[i] = value[i]; > } > /* The string has 16th byte zero still from > set at top of the function */ > - if ((i == 15) && (value[i] != 0)) > + if (i == RFC1001_NAME_LEN && value[i] != 0) > printk(KERN_WARNING "CIFS: netbiosname" > " longer than 15 truncated.\n"); > } > @@ -1190,7 +1190,8 @@ cifs_parse_mount_options(char *options, const char *devname, > cFYI(1, "empty server netbiosname specified"); > } else { > /* last byte, type, is 0x20 for servr type */ > - memset(vol->target_rfc1001_name, 0x20, 16); > + memset(vol->target_rfc1001_name, 0x20, > + RFC1001_NAME_LEN_WITH_NULL); > > for (i = 0; i < 15; i++) { > /* BB are there cases in which a comma can be > @@ -1207,7 +1208,7 @@ cifs_parse_mount_options(char *options, const char *devname, > } > /* The string has 16th byte zero still from > set at top of the function */ > - if ((i == 15) && (value[i] != 0)) > + if (i == RFC1001_NAME_LEN && value[i] != 0) > printk(KERN_WARNING "CIFS: server net" > "biosname longer than 15 truncated.\n"); > } > -- > 1.7.3.2 > > Jeff, I do not see where RFC1001_NAME_LEN_WITH_NULL and RFC1000_NAME_LEN are defined. -- To unsubscribe from this list: send the line "unsubscribe linux-cifs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html