summaryrefslogtreecommitdiffstats
path: root/libxrdp/xrdp_sec.c
diff options
context:
space:
mode:
authorIdan Freiberg <speidy@gmail.com>2014-07-23 16:44:59 +0300
committerIdan Freiberg <speidy@gmail.com>2014-07-23 16:44:59 +0300
commit16929efb059e1e29c826388e5d57be82014d241b (patch)
treef8661e7495a82a4a73e68825f1a1ff44a9e100f1 /libxrdp/xrdp_sec.c
parent0795400fe260652f6ae3788325e2a4c8ee05fe3a (diff)
parent0c63a8feb3c52de98a5da51a0a0f743450c34645 (diff)
downloadxrdp-proprietary-16929efb059e1e29c826388e5d57be82014d241b.tar.gz
xrdp-proprietary-16929efb059e1e29c826388e5d57be82014d241b.zip
Merge branch 'devel' of https://github.com/neutrinolabs/xrdp into
devel Conflicts: libxrdp/xrdp_sec.c
Diffstat (limited to 'libxrdp/xrdp_sec.c')
-rw-r--r--libxrdp/xrdp_sec.c32
1 files changed, 18 insertions, 14 deletions
diff --git a/libxrdp/xrdp_sec.c b/libxrdp/xrdp_sec.c
index 0bb2688c..7ac68b14 100644
--- a/libxrdp/xrdp_sec.c
+++ b/libxrdp/xrdp_sec.c
@@ -730,7 +730,7 @@ xrdp_sec_send_media_lic_response(struct xrdp_sec *self)
/*****************************************************************************/
static void APP_CC
-xrdp_sec_rsa_op(struct xrdp_sec *self, char *out, char *in, int in_bytes,
+xrdp_sec_rsa_op(struct xrdp_sec *self, char *out, char *in, int in_bytes,
char *mod, char *exp)
{
ssl_mod_exp(out, self->rsa_key_bytes, in, in_bytes,
@@ -1595,6 +1595,7 @@ xrdp_sec_process_mcs_data_channels(struct xrdp_sec *self, struct stream *s)
client_info = &(self->rdp_layer->client_info);
+
DEBUG(("processing channels, channel_code is %d", client_info->channel_code));
/* this is an option set in xrdp.ini */
@@ -1618,16 +1619,19 @@ xrdp_sec_process_mcs_data_channels(struct xrdp_sec *self, struct stream *s)
for (index = 0; index < num_channels; index++)
{
+ struct mcs_channel_item *channel_item;
+
channel_item = (struct mcs_channel_item *)
g_malloc(sizeof(struct mcs_channel_item), 1);
if (!s_check_rem(s, 12))
{
+ g_free(channel_item);
return 1;
}
in_uint8a(s, channel_item->name, 8);
in_uint32_le(s, channel_item->flags);
channel_item->chanid = MCS_GLOBAL_CHANNEL + (index + 1);
- list_add_item(self->mcs_layer->channel_list, (tintptr)channel_item);
+ list_add_item(self->mcs_layer->channel_list, (tintptr) channel_item);
DEBUG(("got channel flags %8.8x name %s", channel_item->flags,
channel_item->name));
}
@@ -1926,20 +1930,20 @@ xrdp_sec_incoming(struct xrdp_sec *self)
/* initialize selected security layer */
if (iso->requestedProtocol > PROTOCOL_RDP)
{
- /* init tls security */
- DEBUG((" in xrdp_sec_incoming: init tls security"));
+ /* init tls security */
+ DEBUG((" in xrdp_sec_incoming: init tls security"));
- if (trans_set_tls_mode(self->mcs_layer->iso_layer->trans,
- self->rdp_layer->client_info.key_file,
- self->rdp_layer->client_info.certificate) != 0)
- {
- g_writeln("xrdp_sec_incoming: trans_set_tls_mode failed");
- return 1;
- }
+ if (trans_set_tls_mode(self->mcs_layer->iso_layer->trans,
+ self->rdp_layer->client_info.key_file,
+ self->rdp_layer->client_info.certificate) != 0)
+ {
+ g_writeln("xrdp_sec_incoming: trans_set_tls_mode failed");
+ return 1;
+ }
- self->crypt_level = CRYPT_LEVEL_NONE;
- self->crypt_method = CRYPT_METHOD_NONE;
- self->rsa_key_bytes = 0;
+ self->crypt_level = CRYPT_LEVEL_NONE;
+ self->crypt_method = CRYPT_METHOD_NONE;
+ self->rsa_key_bytes = 0;
}
else