wininet: Reading past end-of-file in chunked mode returns success.
Found by Andrew Eikum.
This commit is contained in:
parent
e8eb781327
commit
a448bbf880
|
@ -2761,7 +2761,7 @@ static DWORD start_next_chunk(chunked_stream_t *stream, http_request_t *req)
|
||||||
|
|
||||||
assert(!stream->chunk_size || stream->chunk_size == ~0u);
|
assert(!stream->chunk_size || stream->chunk_size == ~0u);
|
||||||
|
|
||||||
if (stream->end_of_data) return ERROR_NO_MORE_FILES;
|
if (stream->end_of_data) return ERROR_SUCCESS;
|
||||||
|
|
||||||
/* read terminator for the previous chunk */
|
/* read terminator for the previous chunk */
|
||||||
if(!stream->chunk_size && (res = discard_chunked_eol(stream, req)) != ERROR_SUCCESS)
|
if(!stream->chunk_size && (res = discard_chunked_eol(stream, req)) != ERROR_SUCCESS)
|
||||||
|
|
|
@ -734,7 +734,7 @@ static void InternetReadFile_chunked_test(void)
|
||||||
{
|
{
|
||||||
BOOL res;
|
BOOL res;
|
||||||
CHAR buffer[4000];
|
CHAR buffer[4000];
|
||||||
DWORD length;
|
DWORD length, got;
|
||||||
const char *types[2] = { "*", NULL };
|
const char *types[2] = { "*", NULL };
|
||||||
HINTERNET hi, hic = 0, hor = 0;
|
HINTERNET hi, hic = 0, hor = 0;
|
||||||
|
|
||||||
|
@ -814,7 +814,6 @@ static void InternetReadFile_chunked_test(void)
|
||||||
trace("got %u available\n",length);
|
trace("got %u available\n",length);
|
||||||
if (length)
|
if (length)
|
||||||
{
|
{
|
||||||
DWORD got;
|
|
||||||
char *buffer = HeapAlloc(GetProcessHeap(),0,length+1);
|
char *buffer = HeapAlloc(GetProcessHeap(),0,length+1);
|
||||||
|
|
||||||
res = InternetReadFile(hor,buffer,length,&got);
|
res = InternetReadFile(hor,buffer,length,&got);
|
||||||
|
@ -828,7 +827,13 @@ static void InternetReadFile_chunked_test(void)
|
||||||
if (!got) break;
|
if (!got) break;
|
||||||
}
|
}
|
||||||
if (length == 0)
|
if (length == 0)
|
||||||
|
{
|
||||||
|
got = 0xdeadbeef;
|
||||||
|
res = InternetReadFile( hor, buffer, 1, &got );
|
||||||
|
ok( res, "InternetReadFile failed: %u\n", GetLastError() );
|
||||||
|
ok( !got, "got %u\n", got );
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
abort:
|
abort:
|
||||||
trace("aborting\n");
|
trace("aborting\n");
|
||||||
|
|
Loading…
Reference in New Issue