Merged into "next" with one minor change - removed a trailing white space. Thanks. -- Best regards, Pavel Shilovsky вт, 6 авг. 2019 г. в 09:49, Pavel Shilovsky <piastryyy@xxxxxxxxx>: > > пн, 5 авг. 2019 г. в 19:36, Zhiqiang Liu <liuzhiqiang26@xxxxxxxxxx>: > > > > From: Jiawen Liu <liujiawen10@xxxxxxxxxx> > > > > In mount.cifs module, orgoptions and mountpoint in the main func > > point to the memory allocated by func realpath and strndup respectively. > > However, they are not freed before the main func returns so that the > > memory leaks occurred. > > > > The memory leak problem is reported by LeakSanitizer tool. > > LeakSanitizer url: "https://github.com/google/sanitizers" > > > > Here I free the pointers orgoptions and mountpoint before main > > func returns. > > > > Fixes:7549ad5e7126 ("memory leaks: caused by func realpath and strndup") > > Signed-off-by: Jiawen Liu <liujiawen10@xxxxxxxxxx> > > Reported-by: Jin Du <dujin1@xxxxxxxxxx> > > Reviewed-by: Saisai Zhang <zhangsaisai@xxxxxxxxxx> > > Reviewed-by: Aurélien Aptel <aaptel@xxxxxxxx> > > --- > > v1->v2: > > - free orgoptions in main func as suggested by Aurélien Aptel > > - free mountpoint in acquire_mountpoint func as suggested by Aurélien Aptel > > > > mount.cifs.c | 12 ++++++++++-- > > 1 file changed, 10 insertions(+), 2 deletions(-) > > > > diff --git a/mount.cifs.c b/mount.cifs.c > > index ae7a899..656d353 100644 > > --- a/mount.cifs.c > > +++ b/mount.cifs.c > > @@ -1891,7 +1891,10 @@ restore_privs: > > uid_t __attribute__((unused)) uignore = setfsuid(oldfsuid); > > gid_t __attribute__((unused)) gignore = setfsgid(oldfsgid); > > } > > - > > + > > + if (rc) { > > + free(*mountpointp); > > + } > > return rc; > > } > > > > @@ -1994,8 +1997,10 @@ int main(int argc, char **argv) > > > > /* chdir into mountpoint as soon as possible */ > > rc = acquire_mountpoint(&mountpoint); > > - if (rc) > > + if (rc) { > > + free(orgoptions); > > return rc; > > + } > > > > /* > > * mount.cifs does privilege separation. Most of the code to handle > > @@ -2014,6 +2019,8 @@ int main(int argc, char **argv) > > /* child */ > > rc = assemble_mountinfo(parsed_info, thisprogram, mountpoint, > > orig_dev, orgoptions); > > + free(orgoptions); > > + free(mountpoint); > > return rc; > > } else { > > /* parent */ > > @@ -2149,5 +2156,6 @@ mount_exit: > > } > > free(options); > > free(orgoptions); > > + free(mountpoint); > > return rc; > > } > > -- > > 2.7.4 > > > > Thanks for the patch! I will apply it to my github tree shortly. > > -- > Best regards, > Pavel Shilovsky