Hans Leidekker : webservices: Properly check the input buffer type in WsMoveReader.

Alexandre Julliard julliard at winehq.org
Tue Dec 4 16:33:55 CST 2018


Module: wine
Branch: master
Commit: 29ab52044505000bbd2ca381a278fdc096eb28b2
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=29ab52044505000bbd2ca381a278fdc096eb28b2

Author: Hans Leidekker <hans at codeweavers.com>
Date:   Tue Dec  4 13:57:27 2018 +0100

webservices: Properly check the input buffer type in WsMoveReader.

Signed-off-by: Hans Leidekker <hans at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/webservices/reader.c | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/dlls/webservices/reader.c b/dlls/webservices/reader.c
index ba6a951..9a9d491 100644
--- a/dlls/webservices/reader.c
+++ b/dlls/webservices/reader.c
@@ -653,6 +653,7 @@ HRESULT WINAPI WsFillReader( WS_XML_READER *handle, ULONG min_size, const WS_ASY
 
     TRACE( "%p %u %p %p\n", handle, min_size, ctx, error );
     if (error) FIXME( "ignoring error parameter\n" );
+    if (ctx) FIXME( "ignoring ctx parameter\n" );
 
     if (!reader) return E_INVALIDARG;
 
@@ -3582,7 +3583,7 @@ HRESULT WINAPI WsMoveReader( WS_XML_READER *handle, WS_MOVE_TO move, BOOL *found
         return E_INVALIDARG;
     }
 
-    if (!reader->input_type) hr = WS_E_INVALID_OPERATION;
+    if (reader->input_type != WS_XML_READER_INPUT_TYPE_BUFFER) hr = WS_E_INVALID_OPERATION;
     else hr = read_move_to( reader, move, found );
 
     LeaveCriticalSection( &reader->cs );
@@ -6982,8 +6983,8 @@ HRESULT WINAPI WsSetInput( WS_XML_READER *handle, const WS_XML_READER_ENCODING *
     {
         if (input->inputType == WS_XML_READER_INPUT_TYPE_BUFFER)
         {
-            WS_XML_READER_TEXT_ENCODING *text = (WS_XML_READER_TEXT_ENCODING *)encoding;
-            WS_XML_READER_BUFFER_INPUT *buf = (WS_XML_READER_BUFFER_INPUT *)input;
+            const WS_XML_READER_TEXT_ENCODING *text = (const WS_XML_READER_TEXT_ENCODING *)encoding;
+            const WS_XML_READER_BUFFER_INPUT *buf = (const WS_XML_READER_BUFFER_INPUT *)input;
             if (text->charSet != WS_CHARSET_AUTO) reader->input_charset = text->charSet;
             else reader->input_charset = detect_charset( buf->encodedData, buf->encodedDataSize, &offset );
         }
@@ -6993,7 +6994,7 @@ HRESULT WINAPI WsSetInput( WS_XML_READER *handle, const WS_XML_READER_ENCODING *
     }
     case WS_XML_READER_ENCODING_TYPE_BINARY:
     {
-        WS_XML_READER_BINARY_ENCODING *bin = (WS_XML_READER_BINARY_ENCODING *)encoding;
+        const WS_XML_READER_BINARY_ENCODING *bin = (const WS_XML_READER_BINARY_ENCODING *)encoding;
         reader->input_enc     = WS_XML_READER_ENCODING_TYPE_BINARY;
         reader->input_charset = 0;
         reader->dict_static   = bin->staticDictionary ? bin->staticDictionary : &dict_builtin_static.dict;
@@ -7010,13 +7011,13 @@ HRESULT WINAPI WsSetInput( WS_XML_READER *handle, const WS_XML_READER_ENCODING *
     {
     case WS_XML_READER_INPUT_TYPE_BUFFER:
     {
-        WS_XML_READER_BUFFER_INPUT *buf = (WS_XML_READER_BUFFER_INPUT *)input;
+        const WS_XML_READER_BUFFER_INPUT *buf = (const WS_XML_READER_BUFFER_INPUT *)input;
         set_input_buffer( reader, (const unsigned char *)buf->encodedData + offset, buf->encodedDataSize - offset );
         break;
     }
     case WS_XML_READER_INPUT_TYPE_STREAM:
     {
-        WS_XML_READER_STREAM_INPUT *stream = (WS_XML_READER_STREAM_INPUT *)input;
+        const WS_XML_READER_STREAM_INPUT *stream = (const WS_XML_READER_STREAM_INPUT *)input;
         if (!reader->stream_buf && !(reader->stream_buf = heap_alloc( STREAM_BUFSIZE )))
         {
             hr = E_OUTOFMEMORY;




More information about the wine-cvs mailing list