[patch] cifs: update limit for snprintf() in cifs_construct_tcon()

Steve French smfrench at gmail.com
Tue Jul 12 12:14:00 MDT 2011


What about the following alternative, so we dont rely on the magic
number as much.

diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
index dbd669c..ccc1afa 100644
--- a/fs/cifs/connect.c
+++ b/fs/cifs/connect.c
@@ -3485,7 +3485,7 @@ cifs_construct_tcon(struct cifs_sb_info
*cifs_sb, uid_t fsuid)
 		goto out;
 	}

-	snprintf(username, MAX_USERNAME_SIZE, "krb50x%x", fsuid);
+	snprintf(username, sizeof(username), "krb50x%x", fsuid);
 	vol_info->username = username;
 	vol_info->local_nls = cifs_sb->local_nls;
 	vol_info->linux_uid = fsuid;

On Fri, Jun 17, 2011 at 5:31 AM, Dan Carpenter <error27 at gmail.com> wrote:
> In 34c87901e113 "Shrink stack space usage in cifs_construct_tcon" we
> change the size of the username name buffer from MAX_USERNAME_SIZE
> (256) to 28.  This call to snprintf() needs to be updated as well.
>
> Signed-off-by: Dan Carpenter <error27 at gmail.com>
> ---
> I know that everyone is going to complain about using a literal but
> it's local to this function and it's commented in the lines above.
> I'm not opposed to using a define, I suppose, if you give me a good
> one, but really I'd just as soon leave it as is.  *eye roll in
> advance*.
>
> diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
> index 12cf72d..efd1c7a 100644
> --- a/fs/cifs/connect.c
> +++ b/fs/cifs/connect.c
> @@ -3451,7 +3451,7 @@ cifs_construct_tcon(struct cifs_sb_info *cifs_sb, uid_t fsuid)
>                goto out;
>        }
>
> -       snprintf(username, MAX_USERNAME_SIZE, "krb50x%x", fsuid);
> +       snprintf(username, 28, "krb50x%x", fsuid);
>        vol_info->username = username;
>        vol_info->local_nls = cifs_sb->local_nls;
>        vol_info->linux_uid = fsuid;
>



-- 
Thanks,

Steve


More information about the samba-technical mailing list