[PATCH] Patch for memory leak in vfs_defaults.c
Christof Schmitt
cs at samba.org
Mon Apr 9 18:36:24 UTC 2018
On Mon, Apr 09, 2018 at 08:42:50AM -0700, Jeremy Allison via samba-technical wrote:
> On Fri, Apr 06, 2018 at 04:03:08PM -0700, Jeremy Allison wrote:
> > On Fri, Apr 06, 2018 at 04:40:44PM -0400, Andrew Walker via samba-technical wrote:
> > > Hi all,
> > > I encountered an issue where several FreeNAS users on samba 4.7 were
> > > experiencing memory leak resulting in single smbd process consuming all
> > > available RAM and swap space. Disabling the getwd cache significantly
> > > increased rate of leak, and enabling widelinks / disabling unix extensions
> > > made the leak apparently stop. Investigation indicated that the leak was in
> > > vfswrap_getwd().
> > >
> > > The attached patch resolved the issue.
> >
> > OK, here is the version I'd like to push. Confirmed fixed by
> > the submitter.
> >
> > Ralph, can you do a quick review ?
>
> Ping ! Anyone on the Team, can I get a +1 here please ?
>
> It's a really bad memory leak on potentially (depending
> on directory cache settings) a hot code path, and I'd
> really like to get it fixed in master and 4.8.next, 4.7.next
> (the only releases it's a problem).
>
> Plus as the original bug was my fault, it's making me feel
> really bad :-).
>
> Thanks !
>
> Jeremy.
Reviewed-by: Christof Schmitt <cs at samba.org>
Christof
>
>
>
> > From 92e8095023f82238c0490fc36a38af0ba9eeed8c Mon Sep 17 00:00:00 2001
> > From: Jeremy Allison <jra at samba.org>
> > Date: Fri, 6 Apr 2018 13:52:52 -0700
> > Subject: [PATCH] s3: smbd: Fix memory leak in vfswrap_getwd()
> >
> > BUG: https://bugzilla.samba.org/show_bug.cgi?id=13372
> >
> > Signed-off-by: Andrew Walker <awalker at ixsystems.com>.
> > Reviewed-by: Jeremy Allison <jra at samba.org>
> > ---
> > source3/modules/vfs_default.c | 9 ++++++---
> > 1 file changed, 6 insertions(+), 3 deletions(-)
> >
> > diff --git a/source3/modules/vfs_default.c b/source3/modules/vfs_default.c
> > index a26bec457ae..a9c87e444fe 100644
> > --- a/source3/modules/vfs_default.c
> > +++ b/source3/modules/vfs_default.c
> > @@ -2229,9 +2229,12 @@ static struct smb_filename *vfswrap_getwd(vfs_handle_struct *handle,
> > NULL,
> > NULL,
> > 0);
> > - if (smb_fname == NULL) {
> > - SAFE_FREE(result);
> > - }
> > + /*
> > + * sys_getwd() *always* returns malloced memory.
> > + * We must free here to avoid leaks:
> > + * BUG:https://bugzilla.samba.org/show_bug.cgi?id=13372
> > + */
> > + SAFE_FREE(result);
> > return smb_fname;
> > }
> >
> > --
> > 2.17.0.484.g0c8726318c-goog
> >
>
>
More information about the samba-technical
mailing list