aboutsummaryrefslogtreecommitdiffstats
path: root/fs/cifs
diff options
context:
space:
mode:
authorNamjae Jeon <namjae.jeon@samsung.com>2014-08-21 06:11:20 -0400
committerSteve French <smfrench@gmail.com>2014-08-21 13:06:57 -0400
commitd6ccf4997e62fb6629f9f003980dca5292138b7b (patch)
tree7605256cd2e2ddd2a0a6e62083c2c5c3460bcc9d /fs/cifs
parent27b7edcf1ce03a3eddda24d4d271a9b29572a78b (diff)
cifs: fix memory leak when password is supplied multiple times
Unlikely but possible. When password is supplied multiple times, we have to free the previous allocation. Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com> Signed-off-by: Ashish Sangwan <a.sangwan@samsung.com> Signed-off-by: Steve French <smfrench@gmail.com>
Diffstat (limited to 'fs/cifs')
-rw-r--r--fs/cifs/connect.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
index 03ed8a09581c..36ca2045009b 100644
--- a/fs/cifs/connect.c
+++ b/fs/cifs/connect.c
@@ -1600,6 +1600,7 @@ cifs_parse_mount_options(const char *mountdata, const char *devname,
1600 tmp_end++; 1600 tmp_end++;
1601 if (!(tmp_end < end && tmp_end[1] == delim)) { 1601 if (!(tmp_end < end && tmp_end[1] == delim)) {
1602 /* No it is not. Set the password to NULL */ 1602 /* No it is not. Set the password to NULL */
1603 kfree(vol->password);
1603 vol->password = NULL; 1604 vol->password = NULL;
1604 break; 1605 break;
1605 } 1606 }
@@ -1637,6 +1638,7 @@ cifs_parse_mount_options(const char *mountdata, const char *devname,
1637 options = end; 1638 options = end;
1638 } 1639 }
1639 1640
1641 kfree(vol->password);
1640 /* Now build new password string */ 1642 /* Now build new password string */
1641 temp_len = strlen(value); 1643 temp_len = strlen(value);
1642 vol->password = kzalloc(temp_len+1, GFP_KERNEL); 1644 vol->password = kzalloc(temp_len+1, GFP_KERNEL);