diff options
Diffstat (limited to 'libxrdp/libxrdp.c')
| -rw-r--r-- | libxrdp/libxrdp.c | 6 | 
1 files changed, 6 insertions, 0 deletions
| diff --git a/libxrdp/libxrdp.c b/libxrdp/libxrdp.c index e9c3508b..e5b921c0 100644 --- a/libxrdp/libxrdp.c +++ b/libxrdp/libxrdp.c @@ -308,15 +308,18 @@ libxrdp_send_palette(struct xrdp_session *session, int *palette)      }      DEBUG(("libxrdp_send_palette sending palette")); +          /* clear orders */      libxrdp_orders_force_send(session);      make_stream(s);      init_stream(s, 8192); +          if (session->client_info->use_fast_path & 1) /* fastpath output supported */      {          LLOGLN(10, ("libxrdp_send_palette: fastpath"));          if (xrdp_rdp_init_fastpath((struct xrdp_rdp *)session->rdp, s) != 0)          { +			free_stream(s);              return 1;          }      } @@ -345,6 +348,7 @@ libxrdp_send_palette(struct xrdp_session *session, int *palette)         if (xrdp_rdp_send_fastpath((struct xrdp_rdp *)session->rdp, s,                                     FASTPATH_UPDATETYPE_PALETTE) != 0)         { +		   free_stream(s);             return 1;         }      } @@ -354,6 +358,7 @@ libxrdp_send_palette(struct xrdp_session *session, int *palette)                             RDP_DATA_PDU_UPDATE);      }      free_stream(s); +          /* send the orders palette too */      libxrdp_orders_init(session);      libxrdp_orders_send_palette(session, palette, 0); @@ -775,6 +780,7 @@ libxrdp_set_pointer(struct xrdp_session *session, int cache_idx)          if (xrdp_rdp_send_fastpath((struct xrdp_rdp *)session->rdp, s,                                      FASTPATH_UPDATETYPE_CACHED) != 0)          { +			free_stream(s);              return 1;          }      } | 
