On Wed, Dec 1, 2010 at 9:07 AM, Jeff Layton <jlayton@xxxxxxxxxx> wrote: > On Wed, 1 Dec 2010 09:03:32 -0600 > Shirish Pargaonkar <shirishpargaonkar@xxxxxxxxx> wrote: > >> 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. > > In cifsglob.h... > > There's a tool for this sort of thing called "cscope": > > http://cscope.sourceforge.net/ > > Cheers, > -- > Jeff Layton <jlayton@xxxxxxxxxx> > Oh, I did not realize that these defines existed already. Reviewed-by: Shirish Pargaonkar <shirishpargaonkar@xxxxxxxxx> -- 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