Messages in this thread | | | Date | Tue, 4 May 2021 16:44:45 +0300 | From | Dan Carpenter <> | Subject | Re: [PATCH-next] fs/cifs: Fix resource leak |
| |
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@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
| |