From 049d8cfc7d2cf5fc047bd8c1aef1519139e759d4 Mon Sep 17 00:00:00 2001 From: Hans Leidekker Date: Thu, 21 Sep 2017 11:26:13 +0200 Subject: [PATCH] webservices: Read the string table in all sized envelopes. Signed-off-by: Hans Leidekker Signed-off-by: Alexandre Julliard --- dlls/webservices/channel.c | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/dlls/webservices/channel.c b/dlls/webservices/channel.c index 16a8b8484f6..a8ad01235f7 100644 --- a/dlls/webservices/channel.c +++ b/dlls/webservices/channel.c @@ -1547,12 +1547,10 @@ static HRESULT send_preamble_ack( struct channel *channel ) return S_OK; } -static HRESULT receive_message_session_setup( struct channel *channel ) +static HRESULT receive_message_session( struct channel *channel ) { HRESULT hr; - if ((hr = receive_preamble( channel )) != S_OK) return hr; - if ((hr = send_preamble_ack( channel )) != S_OK) return hr; if ((hr = receive_sized_envelope( channel )) != S_OK) return hr; if (channel->encoding == WS_ENCODING_XML_BINARY_SESSION_1) { @@ -1566,13 +1564,6 @@ static HRESULT receive_message_session_setup( struct channel *channel ) return init_reader( channel ); } -static HRESULT receive_message_session( struct channel *channel ) -{ - HRESULT hr; - if ((hr = receive_sized_envelope( channel )) != S_OK) return hr; - return init_reader( channel ); -} - static HRESULT receive_message_sock( struct channel *channel, SOCKET socket ) { HRESULT hr; @@ -1596,7 +1587,9 @@ static HRESULT receive_message( struct channel *channel ) switch (channel->session_state) { case SESSION_STATE_UNINITIALIZED: - return receive_message_session_setup( channel ); + if ((hr = receive_preamble( channel )) != S_OK) return hr; + if ((hr = send_preamble_ack( channel )) != S_OK) return hr; + /* fall through */ case SESSION_STATE_SETUP_COMPLETE: return receive_message_session( channel );