[PATCH-next] fs/cifs: Fix resource leak
Dan Carpenter
dan.carpenter at oracle.com
Tue May 4 13:44:45 UTC 2021
On Tue, May 04, 2021 at 01:43:43PM +0100, Khaled ROMDHANI wrote:
> The -EIO error return path is leaking memory allocated
> to page. Fix this by invoking the free_dentry_path before
> the return.
>
> Addresses-Coverity: ("Resource leak")
> Signed-off-by: Khaled ROMDHANI <khaledromdhani216 at gmail.com>
Add a Fixes tag.
Fixes: 583248493f78 ("cifs: add shutdown support")
> ---
> fs/cifs/link.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/fs/cifs/link.c b/fs/cifs/link.c
> index 1cbe7ec73728..1485c6095ba1 100644
> --- a/fs/cifs/link.c
> +++ b/fs/cifs/link.c
> @@ -686,8 +686,10 @@ cifs_symlink(struct user_namespace *mnt_userns, struct inode *inode,
> void *page = alloc_dentry_path();
> struct inode *newinode = NULL;
>
> - if (unlikely(cifs_forced_shutdown(cifs_sb)))
> + if (unlikely(cifs_forced_shutdown(cifs_sb))) {
> + free_dentry_path(page);
> return -EIO;
> + }
Better to move the allocation here. Avoid calling functions which can
fail in the declaration block. Better to test for NULL directly instead
of hiding the test inside the build_path_from_dentry() function.
page = alloc_dentry_path();
if (!page)
return -ENOMEM;
The error handling in this function is slightly unweildy...
regards,
dan carpenter
More information about the samba-technical
mailing list