From mboxrd@z Thu Jan 1 00:00:00 1970 From: Namjae Jeon Subject: [PATCH 5/7] cifs: fix memory leak when password is supplied multiple times Date: Wed, 20 Aug 2014 19:39:34 +0900 Message-ID: <003801cfbc63$08767980$19636c80$@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: 'Shirish Pargaonkar' , 'Pavel Shilovsky' , linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Ashish Sangwan To: 'Steve French' Return-path: Content-language: ko Sender: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-ID: Unlikely but possible. When password is supplied multiple times, we have to free the previous allocation. Signed-off-by: Namjae Jeon Signed-off-by: Ashish Sangwan --- fs/cifs/connect.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c index b4b6d10..91512fd 100644 --- a/fs/cifs/connect.c +++ b/fs/cifs/connect.c @@ -1583,6 +1583,7 @@ cifs_parse_mount_options(const char *mountdata, const char *devname, * Check if this is a case where the password * starts with a delimiter */ + kfree(vol->password); tmp_end = strchr(data, '='); tmp_end++; if (!(tmp_end < end && tmp_end[1] == delim)) { @@ -1624,6 +1625,7 @@ cifs_parse_mount_options(const char *mountdata, const char *devname, options = end; } + kfree(vol->password); /* Now build new password string */ temp_len = strlen(value); vol->password = kzalloc(temp_len+1, GFP_KERNEL); -- 1.7.7