diff options
author | Yonit Halperin <yhalperi@redhat.com> | 2012-01-05 17:31:34 +0200 |
---|---|---|
committer | Yonit Halperin <yhalperi@redhat.com> | 2012-01-12 16:17:02 +0200 |
commit | 8b64b95c4339c145867e42f71b3206378bc7c83b (patch) | |
tree | 1c1ade429b293ce64fb75eae56831a61a4c4fd6b /server/smartcard.c | |
parent | a54f26d04e9a391977a8030d609b52e50243ba52 (diff) | |
download | spice-8b64b95c4339c145867e42f71b3206378bc7c83b.tar.gz spice-8b64b95c4339c145867e42f71b3206378bc7c83b.tar.xz spice-8b64b95c4339c145867e42f71b3206378bc7c83b.zip |
server: Limit the access to SpiceDataHeader of messages - only via red_channel.
Diffstat (limited to 'server/smartcard.c')
-rw-r--r-- | server/smartcard.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/server/smartcard.c b/server/smartcard.c index f9cafdfa..08ba3da8 100644 --- a/server/smartcard.c +++ b/server/smartcard.c @@ -273,15 +273,18 @@ static int smartcard_channel_client_config_socket(RedChannelClient *rcc) } static uint8_t *smartcard_channel_alloc_msg_rcv_buf(RedChannelClient *rcc, - SpiceDataHeader *msg_header) + uint16_t type, + uint32_t size) { - return spice_malloc(msg_header->size); + return spice_malloc(size); } static void smartcard_channel_release_msg_rcv_buf(RedChannelClient *rcc, - SpiceDataHeader *msg_header, uint8_t *msg) + uint16_t type, + uint32_t size, + uint8_t *msg) { - red_printf("freeing %d bytes", msg_header->size); + red_printf("freeing %d bytes", size); free(msg); } @@ -439,14 +442,15 @@ static void smartcard_channel_write_to_reader(VSCMsgHeader *vheader) } static int smartcard_channel_handle_message(RedChannelClient *rcc, - SpiceDataHeader *header, + uint16_t type, + uint32_t size, uint8_t *msg) { VSCMsgHeader* vheader = (VSCMsgHeader*)msg; - if (header->type != SPICE_MSGC_SMARTCARD_DATA) { + if (type != SPICE_MSGC_SMARTCARD_DATA) { /* handle ack's, spicy sends them while spicec does not */ - return red_channel_client_handle_message(rcc, header->size, header->type, msg); + return red_channel_client_handle_message(rcc, size, type, msg); } ASSERT(header->size == vheader->length + sizeof(VSCMsgHeader)); |