diff options
author | Steve French <sfrench@us.ibm.com> | 2011-03-01 00:02:57 -0500 |
---|---|---|
committer | Steve French <sfrench@us.ibm.com> | 2011-05-19 10:10:48 -0400 |
commit | 34c87901e113799a45423fdac29c7478c889a95d (patch) | |
tree | 1398028abbfc10d181f3a3c805c78ebb689d9e70 | |
parent | fd62cb7e7411f1f5ca774145665316d3612fed9a (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.h | 3 | ||||
-rw-r--r-- | fs/cifs/connect.c | 4 |
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) { |