diff options
author | Steve French <sfrench@us.ibm.com> | 2008-03-22 22:57:44 +0000 |
---|---|---|
committer | Steve French <sfrench@us.ibm.com> | 2008-03-22 22:57:44 +0000 |
commit | 04b6e6ec1a9340ab77637cae9b51b984d9d706d8 (patch) | |
tree | 50d555030ba63ca2ca2b6a889a412b0b9a5943ef /fs | |
parent | 8b1327f6ed957030a64ccdb17131955bfea2d3fe (diff) | |
download | linux-stable-04b6e6ec1a9340ab77637cae9b51b984d9d706d8.tar.gz linux-stable-04b6e6ec1a9340ab77637cae9b51b984d9d706d8.tar.bz2 linux-stable-04b6e6ec1a9340ab77637cae9b51b984d9d706d8.zip |
[CIFS] Fix mem leak on dfs referral
Signed-off-by: Igor Mammedov <niallain@gmail.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/cifs/inode.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c index 7e4c24491729..bc673c8c1e6b 100644 --- a/fs/cifs/inode.c +++ b/fs/cifs/inode.c @@ -211,7 +211,10 @@ try_again_CIFSSMBUnixQPathInfo: if (rc) { if (rc == -EREMOTE && !is_dfs_referral) { is_dfs_referral = true; - full_path = search_path; + if (full_path != search_path) { + kfree(full_path); + full_path = search_path; + } goto try_again_CIFSSMBUnixQPathInfo; } goto cgiiu_exit; @@ -422,7 +425,10 @@ try_again_CIFSSMBQPathInfo: if (rc) { if (rc == -EREMOTE && !is_dfs_referral) { is_dfs_referral = true; - full_path = search_path; + if (full_path != search_path) { + kfree(full_path); + full_path = search_path; + } goto try_again_CIFSSMBQPathInfo; } goto cgii_exit; |