[PATCH v2] system/vl: Free allocate memory for pid file name in case realpath() failed
Thomas Huth <[email protected]> Mon, 18 May 2026 13:45:14 +0200
| Newsgroups | org.nongnu.qemu-trivial,org.nongnu.qemu-devel |
|---|---|
| Message-ID | <[email protected]> |
From: Thomas Huth <[email protected]> In case realpath() fails, the code returns early in the function qemu_maybe_daemonize(), without freeing the allocated memory. Add a g_free() here to fix it. And while we're at it, also free the memory in the qemu_unlink_pidfile() function - it's not that important since QEMU is going to terminate anyway, but some malloc sanitizers might still complain if we don't free it. Fixes: dee2a4d4d2f ("vl: defuse PID file path resolve error") Signed-off-by: Thomas Huth <[email protected]> --- v2: Free memory in qemu_unlink_pidfile(), too system/vl.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/system/vl.c b/system/vl.c index d2f4044e5d8..a31b7f87230 100644 --- a/system/vl.c +++ b/system/vl.c @@ -1633,6 +1633,8 @@ static void qemu_unlink_pidfile(Notifier *n, void *data) upn = DO_UPCAST(struct UnlinkPidfileNotifier, notifier, n); unlink(upn->pid_file_realpath); + g_free(upn->pid_file_realpath); + upn->pid_file_realpath = NULL; } static const QEMUOption *lookup_opt(int argc, char **argv, @@ -2670,6 +2672,7 @@ static void qemu_maybe_daemonize(const char *pid_file) warn_report("not removing PID file on exit: cannot resolve PID " "file path: %s: %s", pid_file, strerror(errno)); } + g_free(pid_file_realpath); return; } -- 2.54.0