libxrdp: security layer, error handling

This commit is contained in:
speidy 2014-12-13 16:36:23 +02:00
parent 83eb128d7c
commit bf622c46a6

View File

@ -49,8 +49,10 @@ xrdp_iso_delete(struct xrdp_iso *self)
} }
/*****************************************************************************/ /*****************************************************************************/
/* returns error */
static int APP_CC static int APP_CC
xrdp_iso_negotiate_security(struct xrdp_iso *self) { xrdp_iso_negotiate_security(struct xrdp_iso *self) {
int rv = 0;
int server_security_layer = self->mcs_layer->sec_layer->rdp_layer->client_info.security_layer; int server_security_layer = self->mcs_layer->sec_layer->rdp_layer->client_info.security_layer;
self->selectedProtocol = server_security_layer; self->selectedProtocol = server_security_layer;
@ -64,6 +66,7 @@ xrdp_iso_negotiate_security(struct xrdp_iso *self) {
self->selectedProtocol = PROTOCOL_SSL; self->selectedProtocol = PROTOCOL_SSL;
} else { } else {
self->failureCode = SSL_REQUIRED_BY_SERVER; self->failureCode = SSL_REQUIRED_BY_SERVER;
rv = 1; /* error */
} }
break; break;
case PROTOCOL_HYBRID: case PROTOCOL_HYBRID:
@ -80,7 +83,7 @@ xrdp_iso_negotiate_security(struct xrdp_iso *self) {
DEBUG(("xrdp_iso_negotiate_security: server security layer %d , client security layer %d", DEBUG(("xrdp_iso_negotiate_security: server security layer %d , client security layer %d",
self->selectedProtocol, self->requestedProtocol)); self->selectedProtocol, self->requestedProtocol));
return 0; return rv;
} }
/*****************************************************************************/ /*****************************************************************************/
@ -269,6 +272,7 @@ xrdp_iso_send_cc(struct xrdp_iso *self)
int APP_CC int APP_CC
xrdp_iso_incoming(struct xrdp_iso *self) xrdp_iso_incoming(struct xrdp_iso *self)
{ {
int rv = 0;
int code; int code;
int len; int len;
int cookie_index; int cookie_index;
@ -337,7 +341,7 @@ xrdp_iso_incoming(struct xrdp_iso *self)
} }
/* negotiate client-server security layer */ /* negotiate client-server security layer */
xrdp_iso_negotiate_security(self); rv = xrdp_iso_negotiate_security(self);
/* send connection confirm back to client */ /* send connection confirm back to client */
if (xrdp_iso_send_cc(self) != 0) if (xrdp_iso_send_cc(self) != 0)
@ -347,7 +351,7 @@ xrdp_iso_incoming(struct xrdp_iso *self)
} }
DEBUG((" out xrdp_iso_incoming")); DEBUG((" out xrdp_iso_incoming"));
return 0; return rv;
} }
/*****************************************************************************/ /*****************************************************************************/