diff --git a/cmake/ConfigOptions.cmake b/cmake/ConfigOptions.cmake index 5a9d7a258..fb5daa97b 100644 --- a/cmake/ConfigOptions.cmake +++ b/cmake/ConfigOptions.cmake @@ -18,3 +18,4 @@ option(WITH_MANPAGES "Generate manpages." ON) option(WITH_PROFILER "Compile profiler." OFF) option(WITH_SSE2 "Use SSE2 optimization." OFF) option(WITH_SSE2_TARGET "Allow compiler to generate SSE2 instructions." OFF) +option(WITH_DEBUG_REDIR "Redirection debug messages" OFF) diff --git a/config.h.in b/config.h.in index 41c45e2c7..741011990 100644 --- a/config.h.in +++ b/config.h.in @@ -37,5 +37,6 @@ #cmakedefine WITH_DEBUG_XV #cmakedefine WITH_DEBUG_SCARD #cmakedefine WITH_DEBUG_ORDERS +#cmakedefine WITH_DEBUG_REDIR #endif diff --git a/libfreerdp-core/redirection.c b/libfreerdp-core/redirection.c index 5e6c0e5a5..84e9176d0 100644 --- a/libfreerdp-core/redirection.c +++ b/libfreerdp-core/redirection.c @@ -138,12 +138,13 @@ boolean rdp_recv_server_redirection_pdu(rdpRdp* rdp, STREAM* s) redirection->targetNetAddresses = (rdpString*) xzalloc(count * sizeof(rdpString)); - while (count > 0) + + int i; + + for (i=0; i < count; i++) { - freerdp_string_read_length32(s, redirection->targetNetAddresses, rdp->settings->uniconv); - DEBUG_REDIR("targetNetAddresses: %s", redirection->targetNetAddresses->ascii); - redirection->targetNetAddresses++; - count--; + freerdp_string_read_length32(s, &redirection->targetNetAddresses[i], rdp->settings->uniconv); + DEBUG_REDIR("targetNetAddresses: %s", (&redirection->targetNetAddresses[i])->ascii); } }