aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve French <sfrench@us.ibm.com>2011-03-01 00:02:57 -0500
committerSteve French <sfrench@us.ibm.com>2011-05-19 10:10:48 -0400
commit34c87901e113799a45423fdac29c7478c889a95d (patch)
tree1398028abbfc10d181f3a3c805c78ebb689d9e70
parentfd62cb7e7411f1f5ca774145665316d3612fed9a (diff)
Shrink stack space usage in cifs_construct_tcon
We were reserving MAX_USERNAME (now 256) on stack for something which only needs to fit about 24 bytes ie string krb50x + printf version of uid Signed-off-by: Steve French <sfrench@us.ibm.com>
-rw-r--r--fs/cifs/cifsglob.h3
-rw-r--r--fs/cifs/connect.c4
2 files changed, 5 insertions, 2 deletions
diff --git a/fs/cifs/cifsglob.h b/fs/cifs/cifsglob.h
index 6e211b67b273..108a1e99aa9f 100644
--- a/fs/cifs/cifsglob.h
+++ b/fs/cifs/cifsglob.h
@@ -274,7 +274,8 @@ struct cifsSesInfo {
274 int capabilities; 274 int capabilities;
275 char serverName[SERVER_NAME_LEN_WITH_NULL * 2]; /* BB make bigger for 275 char serverName[SERVER_NAME_LEN_WITH_NULL * 2]; /* BB make bigger for
276 TCP names - will ipv6 and sctp addresses fit? */ 276 TCP names - will ipv6 and sctp addresses fit? */
277 char *user_name; 277 char *user_name; /* must not be null except during init of sess
278 and after mount option parsing we fill it */
278 char *domainName; 279 char *domainName;
279 char *password; 280 char *password;
280 struct session_key auth_key; 281 struct session_key auth_key;
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
index 68b7dbf24b92..8d72acbd5c13 100644
--- a/fs/cifs/connect.c
+++ b/fs/cifs/connect.c
@@ -3258,7 +3258,9 @@ cifs_construct_tcon(struct cifs_sb_info *cifs_sb, uid_t fsuid)
3258 struct cifsSesInfo *ses; 3258 struct cifsSesInfo *ses;
3259 struct cifsTconInfo *tcon = NULL; 3259 struct cifsTconInfo *tcon = NULL;
3260 struct smb_vol *vol_info; 3260 struct smb_vol *vol_info;
3261 char username[MAX_USERNAME_SIZE + 1]; 3261 char username[28]; /* big enough for "krb50x" + hex of ULONG_MAX 6+16 */
3262 /* We used to have this as MAX_USERNAME which is */
3263 /* way too big now (256 instead of 32) */
3262 3264
3263 vol_info = kzalloc(sizeof(*vol_info), GFP_KERNEL); 3265 vol_info = kzalloc(sizeof(*vol_info), GFP_KERNEL);
3264 if (vol_info == NULL) { 3266 if (vol_info == NULL) {