[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 09/65] slirp: fix slirp_add_exec() leaks
From: |
Samuel Thibault |
Subject: |
[Qemu-devel] [PULL 09/65] slirp: fix slirp_add_exec() leaks |
Date: |
Mon, 14 Jan 2019 01:02:30 +0100 |
From: Marc-André Lureau <address@hidden>
Free the list elements allocated in add_exec().
Signed-off-by: Marc-André Lureau <address@hidden>
Signed-off-by: Samuel Thibault <address@hidden>
---
slirp/misc.h | 2 +-
slirp/slirp.c | 8 ++++++++
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/slirp/misc.h b/slirp/misc.h
index 94829722cd..0bc5e74bc5 100644
--- a/slirp/misc.h
+++ b/slirp/misc.h
@@ -12,7 +12,7 @@ struct ex_list {
void *ex_chardev;
struct in_addr ex_addr; /* Server address */
int ex_fport; /* Port to telnet to */
- const char *ex_exec; /* Command line of what to exec */
+ char *ex_exec; /* Command line of what to exec */
struct ex_list *ex_next;
};
diff --git a/slirp/slirp.c b/slirp/slirp.c
index ab08694e37..1627436e7d 100644
--- a/slirp/slirp.c
+++ b/slirp/slirp.c
@@ -342,6 +342,14 @@ Slirp *slirp_init(int restricted, bool in_enabled, struct
in_addr vnetwork,
void slirp_cleanup(Slirp *slirp)
{
+ struct ex_list *e, *next;
+
+ for (e = slirp->exec_list; e; e = next) {
+ next = e->ex_next;
+ g_free(e->ex_exec);
+ g_free(e);
+ }
+
QTAILQ_REMOVE(&slirp_instances, slirp, entry);
unregister_savevm(NULL, "slirp", slirp);
--
2.20.1
- [Qemu-devel] [PULLv2 00/65] slirp updates, Samuel Thibault, 2019/01/13
- [Qemu-devel] [PULL 03/65] slirp: replace ex_pty with ex_chardev, Samuel Thibault, 2019/01/13
- [Qemu-devel] [PULL 06/65] slirp: rename /extra/chardev, Samuel Thibault, 2019/01/13
- [Qemu-devel] [PULL 10/65] slirp: replace the poor-man string split with g_strsplit(), Samuel Thibault, 2019/01/13
- [Qemu-devel] [PULL 17/65] slirp: remove FULL_BOLT, Samuel Thibault, 2019/01/13
- [Qemu-devel] [PULL 21/65] slirp: remove NO_UNIX_SOCKETS, Samuel Thibault, 2019/01/13
- [Qemu-devel] [PULL 18/65] slirp: remove the disabled readv()/writev() code path, Samuel Thibault, 2019/01/13
- [Qemu-devel] [PULL 01/65] slirp: associate slirp_output callback with the Slirp context, Samuel Thibault, 2019/01/13
- [Qemu-devel] [PULL 02/65] slirp: remove do_pty from fork_exec(), Samuel Thibault, 2019/01/13
- [Qemu-devel] [PULL 07/65] slirp: move internal function declarations, Samuel Thibault, 2019/01/13
- [Qemu-devel] [PULL 09/65] slirp: fix slirp_add_exec() leaks,
Samuel Thibault <=
- [Qemu-devel] [PULL 05/65] slirp: remove unused EMU_RSH, Samuel Thibault, 2019/01/13
- [Qemu-devel] [PULL 11/65] slirp: remove dead declarations, Samuel Thibault, 2019/01/13
- [Qemu-devel] [PULL 14/65] slirp: remove unused M_TRAILINGSPACE, Samuel Thibault, 2019/01/13
- [Qemu-devel] [PULL 12/65] slirp: add tftp tracing, Samuel Thibault, 2019/01/13
- [Qemu-devel] [PULL 15/65] slirp: use a callback structure to interface with qemu, Samuel Thibault, 2019/01/13
- [Qemu-devel] [PULL 24/65] slirp: remove unused HAVE_SYS_WAIT_H, Samuel Thibault, 2019/01/13
- [Qemu-devel] [PULL 22/65] slirp: remove unused HAVE_SYS_STROPTS_H, Samuel Thibault, 2019/01/13
- [Qemu-devel] [PULL 32/65] slirp: replace compile time DO_KEEPALIVE, Samuel Thibault, 2019/01/13
- [Qemu-devel] [PULL 08/65] slirp: remove Monitor dependency, return a string for info, Samuel Thibault, 2019/01/13
- [Qemu-devel] [PULL 04/65] slirp: use a dedicated field for chardev pointer, Samuel Thibault, 2019/01/13