mirror of https://github.com/FreeRDP/FreeRDP
xfreerdp: fix exit segfault.
This commit is contained in:
parent
460dd38cad
commit
fc16c6f7bd
|
@ -403,9 +403,10 @@ void xf_free(xfInfo* xfi)
|
||||||
{
|
{
|
||||||
xf_window_free(xfi);
|
xf_window_free(xfi);
|
||||||
XCloseDisplay(xfi->display);
|
XCloseDisplay(xfi->display);
|
||||||
|
xfree(xfi);
|
||||||
}
|
}
|
||||||
|
|
||||||
int dfreerdp_run(freerdp* instance)
|
int xfreerdp_run(freerdp* instance)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
int fds;
|
int fds;
|
||||||
|
@ -422,11 +423,11 @@ int dfreerdp_run(freerdp* instance)
|
||||||
memset(rfds, 0, sizeof(rfds));
|
memset(rfds, 0, sizeof(rfds));
|
||||||
memset(wfds, 0, sizeof(wfds));
|
memset(wfds, 0, sizeof(wfds));
|
||||||
|
|
||||||
|
instance->Connect(instance);
|
||||||
|
|
||||||
xfi = GET_XFI(instance);
|
xfi = GET_XFI(instance);
|
||||||
chanman = GET_CHANMAN(instance);
|
chanman = GET_CHANMAN(instance);
|
||||||
|
|
||||||
instance->Connect(instance);
|
|
||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
rcount = 0;
|
rcount = 0;
|
||||||
|
@ -508,7 +509,7 @@ void* thread_func(void* param)
|
||||||
struct thread_data* data;
|
struct thread_data* data;
|
||||||
data = (struct thread_data*) param;
|
data = (struct thread_data*) param;
|
||||||
|
|
||||||
dfreerdp_run(data->instance);
|
xfreerdp_run(data->instance);
|
||||||
|
|
||||||
xfree(data);
|
xfree(data);
|
||||||
|
|
||||||
|
@ -517,7 +518,7 @@ void* thread_func(void* param)
|
||||||
g_thread_count--;
|
g_thread_count--;
|
||||||
|
|
||||||
if (g_thread_count < 1)
|
if (g_thread_count < 1)
|
||||||
freerdp_sem_signal(&g_sem);
|
freerdp_sem_signal(g_sem);
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue