wininet: Don't start the next chunk if the read is satisfied.

Hans Leidekker hans at codeweavers.com
Wed Sep 4 02:22:12 CDT 2013


---
 dlls/wininet/http.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/dlls/wininet/http.c b/dlls/wininet/http.c
index 1832b4f..521e4aa 100644
--- a/dlls/wininet/http.c
+++ b/dlls/wininet/http.c
@@ -2795,7 +2795,7 @@ static DWORD chunked_read(data_stream_t *stream, http_request_t *req, BYTE *buf,
     chunked_stream_t *chunked_stream = (chunked_stream_t*)stream;
     DWORD read_bytes = 0, ret_read = 0, res = ERROR_SUCCESS;
 
-    if(chunked_stream->chunk_size == ~0u) {
+    if(!chunked_stream->chunk_size || chunked_stream->chunk_size == ~0u) {
         res = start_next_chunk(chunked_stream, req);
         if(res != ERROR_SUCCESS)
             return res;
@@ -2835,7 +2835,7 @@ static DWORD chunked_read(data_stream_t *stream, http_request_t *req, BYTE *buf,
         chunked_stream->chunk_size -= read_bytes;
         size -= read_bytes;
         ret_read += read_bytes;
-        if(!chunked_stream->chunk_size) {
+        if(size && !chunked_stream->chunk_size) {
             assert(read_mode != READMODE_NOBLOCK);
             res = start_next_chunk(chunked_stream, req);
             if(res != ERROR_SUCCESS)
-- 
1.8.4.rc3






More information about the wine-patches mailing list