Re: [XEN PATCH] tools/console/daemon: fix log_dir memory leak in xenconsoled
Andrew Precious <[email protected]>
| Newsgroups | gmane.comp.emulators.xen.devel |
|---|---|
| Message-ID | <CAF14T9n3QXEKHse-=7hr_=VzMc9ca7xkoSnVmGE1aZ_vsFNM2Q@mail.gmail.com> |
Noted,it's my 1st first time contributing. Should I generate a version 2 patch for this? On Fri, Aug 14, 2026 at 10:52 AM Jan Beulich <[email protected]> wrote: > On 13.08.2026 23:27, Andrew Mbugua wrote: > > Valgrind reports that 21 bytes are "still reachable" from the > (XEN_LOG_DIR "/console") allocation: > > > > HEAP SUMMARY: > > in use at exit: 21 bytes in 1 blocks > > total heap usage: 9 allocs, 8 frees, 4,799 bytes allocated > > > > Since the dynamic memory allocation for the default log directory path > happens before the process > > forks into the background, the parent and intermediate processes exit > during daemonize() > > with the memory still reachable. > > > > Move the strdup() allocation down below the daemonize() block. This > ensures only the final > > background daemon allocates the default path, matching the lifetime of > the free(log_dir) > > cleanup loop at the exit of main(). > > > > With this change, Valgrind reports a clean heap summary > > > > HEAP SUMMARY: > > in use at exit: 0 bytes in 0 blocks > > total heap usage: 8 allocs, 8 frees, 4,778 bytes allocated > > > > Signed-off-by: Andrew Mbugua <[email protected]> > > Looks all plausible (albeit a little unnecessary, as memory is freed at > program exit anyway), except that ... > > > --- a/tools/console/daemon/main.c > > +++ b/tools/console/daemon/main.c > > @@ -181,10 +181,6 @@ int main(int argc, char **argv) > > } > > } > > > > - if (!log_dir) { > > - log_dir = strdup(XEN_LOG_DIR "/console"); > > - } > > - > > if (geteuid() != 0) { > > fprintf(stderr, "%s requires root to run.\n", argv[0]); > > exit(EPERM); > > @@ -201,6 +197,10 @@ int main(int argc, char **argv) > > daemonize(pidfile ? pidfile : XEN_RUN_DIR > "/xenconsoled.pid"); > > } > > > > + if (!log_dir) { > > + log_dir = strdup(XEN_LOG_DIR "/console"); > > + } > ... can you please not screw up indentation? All you want is to move the > code, without converting tabs to blanks. > > Jan >