[PATCH 2/2] wininet/tests: Added checks for bad return values and skip tests when it happens. (try 2)
Morten Rønne
morten.roenne at tdcadsl.dk
Mon Apr 9 14:39:31 CDT 2012
Hi Alexandre
Well if you do not get a ERROR_INSUFFICIENT_BUFFER back, then
cbCacheEntryInfo will not be changed, and that means that using that
value in a following HeapAlloc may cause different kind of problems.
If cbCacheEntryInfo were zero, this will cause the following HeapAlloc
to succesed, and return a pointer to a zero size buffer.
The pointer will in turn be used to access some element outside of the
zero size buffer.
This will either give a random value, which isn't a problem, or if the
allocated block is on the border of allocated memory, this will actually
cause a SIGSEGV. And I consider that to be a bad thing.
So I think you need to test for that value, if do not want "random"
SIGSEGV to happen during tests.
That problem is a common problem when the urlcache run full. And
although Piotr have added code that will expand the urlcache, there is a
limit on the cache, so it may run full for some people.
Best Regards
Morten Rønne
Den 09-04-2012 18:22, Alexandre Julliard skrev:
> Morten Rønne<morten.roenne at tdcadsl.dk> writes:
>
>> diff --git a/dlls/wininet/tests/urlcache.c b/dlls/wininet/tests/urlcache.c
>> index 02d8d28..1bf3f23 100644
>> --- a/dlls/wininet/tests/urlcache.c
>> +++ b/dlls/wininet/tests/urlcache.c
>> @@ -60,7 +60,20 @@ static void test_find_url_cache_entriesA(void)
>> hEnumHandle = FindFirstUrlCacheEntry(NULL, NULL,&cbCacheEntryInfo);
>> ok(!hEnumHandle, "FindFirstUrlCacheEntry should have failed\n");
>> ok(GetLastError() == ERROR_INSUFFICIENT_BUFFER, "FindFirstUrlCacheEntry should have set last error to ERROR_INSUFFICIENT_BUFFER instead of %d\n", GetLastError());
>> + if (GetLastError() != ERROR_INSUFFICIENT_BUFFER)
>> + {
>> + skip("Find*UrlCacheEntry tests skipped, due to wrong return value\n");
>> + return;
>> + }
> You don't need to add skip() for that sort of thing, it's not supposed
> to happen, and if it does there will already be a test failure in the
> report.
>
More information about the wine-devel
mailing list