Marcus Meissner marcus@jet.franken.de writes:
buffer and size need to be either 0 at the same time or not, otherwise this breaks up. Windows is inconsistent (either crashes or returns invalids), so we can just add checking.
If Windows crashes we don't need extra checks. Just tell Coverity that crashing is allowed here.
On Wed, Jan 06, 2010 at 01:34:28PM +0100, Alexandre Julliard wrote:
Marcus Meissner marcus@jet.franken.de writes:
buffer and size need to be either 0 at the same time or not, otherwise this breaks up. Windows is inconsistent (either crashes or returns invalids), so we can just add checking.
If Windows crashes we don't need extra checks. Just tell Coverity that crashing is allowed here.
I can't really say without a testcase.
Could someone please run this test under some Windows versions? (Have not setup a Win32 buildenv :/)
Ciao, Marcus
diff --git a/dlls/kernel32/tests/profile.c b/dlls/kernel32/tests/profile.c index e3f7156..8e64e73 100644 --- a/dlls/kernel32/tests/profile.c +++ b/dlls/kernel32/tests/profile.c @@ -266,6 +266,10 @@ static void test_profile_sections_names(void) WriteFile( h, content, sizeof(content), &count, NULL); CloseHandle( h);
+ ret = GetPrivateProfileSectionNames( NULL, 2, testfile3); + ok (ret == 0, "NULL buf but non-0 size, expected error\n"); + ret = GetPrivateProfileSectionNames( buf, 29, NULL); + ok (ret == 0, "NULL filename, expected error\n"); /* Test with sufficiently large buffer */ memset(buf, 0xc, sizeof(buf)); ret = GetPrivateProfileSectionNamesA( buf, 29, testfile3 );
On 01/06/2010 01:59 PM, Marcus Meissner wrote:
diff --git a/dlls/kernel32/tests/profile.c b/dlls/kernel32/tests/profile.c index e3f7156..8e64e73 100644 --- a/dlls/kernel32/tests/profile.c +++ b/dlls/kernel32/tests/profile.c @@ -266,6 +266,10 @@ static void test_profile_sections_names(void) WriteFile( h, content, sizeof(content),&count, NULL); CloseHandle( h);
- ret = GetPrivateProfileSectionNames( NULL, 2, testfile3);
- ok (ret == 0, "NULL buf but non-0 size, expected error\n");
- ret = GetPrivateProfileSectionNames( buf, 29, NULL);
- ok (ret == 0, "NULL filename, expected error\n"); /* Test with sufficiently large buffer */ memset(buf, 0xc, sizeof(buf)); ret = GetPrivateProfileSectionNamesA( buf, 29, testfile3 );
Looks like it crashes on most OS versions:
https://winetestbot.geldorp.nl/JobDetails.pl?Key=254
On 01/06/2010 01:59 PM, Marcus Meissner wrote:
diff --git a/dlls/kernel32/tests/profile.c b/dlls/kernel32/tests/profile.c index e3f7156..8e64e73 100644 --- a/dlls/kernel32/tests/profile.c +++ b/dlls/kernel32/tests/profile.c @@ -266,6 +266,10 @@ static void test_profile_sections_names(void) WriteFile( h, content, sizeof(content),&count, NULL); CloseHandle( h);
- ret = GetPrivateProfileSectionNames( NULL, 2, testfile3);
- ok (ret == 0, "NULL buf but non-0 size, expected error\n");
- ret = GetPrivateProfileSectionNames( buf, 29, NULL);
- ok (ret == 0, "NULL filename, expected error\n"); /* Test with sufficiently large buffer */ memset(buf, 0xc, sizeof(buf)); ret = GetPrivateProfileSectionNamesA( buf, 29, testfile3 );
Just crosscompiled for you, but winetestbot accepts patches these days ;)