From 7c512ba042ebb88460612f87c9a99a522db0ea24 Mon Sep 17 00:00:00 2001 From: norrarvid Date: Wed, 30 May 2012 08:42:05 +0200 Subject: [PATCH 1/2] freerdp disconnect added in exit --- freerdp1/xrdp-freerdp.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/freerdp1/xrdp-freerdp.c b/freerdp1/xrdp-freerdp.c index bad9d4ad..2b23194e 100644 --- a/freerdp1/xrdp-freerdp.c +++ b/freerdp1/xrdp-freerdp.c @@ -1334,13 +1334,18 @@ mod_exit(struct mod* mod) { return 0; } - + if(mod->inst == NULL) + { + LLOGLN(0, ("mod_exit - null pointer for inst:")); + return 0 ; + } + freerdp_disconnect(mod->inst); if ((mod->vmaj == 1) && (mod->vmin == 0) && (mod->vrev == 1)) { /* this version has a bug with double free in freerdp_free */ } else - { + { freerdp_context_free(mod->inst); } freerdp_free(mod->inst); From 9cad7e8563f8f896df8524fd1c09692cb9578d80 Mon Sep 17 00:00:00 2001 From: norrarvid Date: Mon, 18 Jun 2012 08:23:36 +0200 Subject: [PATCH 2/2] layout fix + fix potential memory leak --- freerdp1/xrdp-freerdp.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/freerdp1/xrdp-freerdp.c b/freerdp1/xrdp-freerdp.c index 2b23194e..d8b5b286 100644 --- a/freerdp1/xrdp-freerdp.c +++ b/freerdp1/xrdp-freerdp.c @@ -1337,6 +1337,7 @@ mod_exit(struct mod* mod) if(mod->inst == NULL) { LLOGLN(0, ("mod_exit - null pointer for inst:")); + g_free(mod); return 0 ; } freerdp_disconnect(mod->inst); @@ -1345,7 +1346,7 @@ mod_exit(struct mod* mod) /* this version has a bug with double free in freerdp_free */ } else - { + { freerdp_context_free(mod->inst); } freerdp_free(mod->inst);