diff options
author | Christian Engelmayer <cengelma@gmx.at> | 2014-01-10 19:57:22 -0500 |
---|---|---|
committer | Steve French <smfrench@gmail.com> | 2014-01-20 00:58:18 -0500 |
commit | abf9767c823bf57837c2032f21332a6efc38a13e (patch) | |
tree | 601c90d4f541e0f2399f6dc2b400460c3c62a731 | |
parent | d8ec26d7f8287f5788a494f56e8814210f0e64be (diff) |
cifs: Fix memory leak in cifs_hardlink()
Fix a potential memory leak in the cifs_hardlink() error handling path.
Detected by Coverity: CID 728510, CID 728511.
Signed-off-by: Christian Engelmayer <cengelma@gmx.at>
Signed-off-by: Steve French <smfrench@gmail.com>
-rw-r--r-- | fs/cifs/link.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/fs/cifs/link.c b/fs/cifs/link.c index 92aee08483a5..28bc8ee97056 100644 --- a/fs/cifs/link.c +++ b/fs/cifs/link.c | |||
@@ -438,8 +438,10 @@ cifs_hardlink(struct dentry *old_file, struct inode *inode, | |||
438 | CIFS_MOUNT_MAP_SPECIAL_CHR); | 438 | CIFS_MOUNT_MAP_SPECIAL_CHR); |
439 | else { | 439 | else { |
440 | server = tcon->ses->server; | 440 | server = tcon->ses->server; |
441 | if (!server->ops->create_hardlink) | 441 | if (!server->ops->create_hardlink) { |
442 | return -ENOSYS; | 442 | rc = -ENOSYS; |
443 | goto cifs_hl_exit; | ||
444 | } | ||
443 | rc = server->ops->create_hardlink(xid, tcon, from_name, to_name, | 445 | rc = server->ops->create_hardlink(xid, tcon, from_name, to_name, |
444 | cifs_sb); | 446 | cifs_sb); |
445 | if ((rc == -EIO) || (rc == -EINVAL)) | 447 | if ((rc == -EIO) || (rc == -EINVAL)) |