[PATCH 5/5] ntdll: handle error cases in om test (Coverity)

Marcus Meissner meissner at suse.de
Fri Jul 9 06:09:53 CDT 2010


Hi,

coverity sees that len might be too large in error return
cases and cause a buffer overread. So check the error return
cases in that specific test.

Ciao, Marcus
---
 dlls/ntdll/tests/om.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/dlls/ntdll/tests/om.c b/dlls/ntdll/tests/om.c
index 24339bb..c6a3cbf 100644
--- a/dlls/ntdll/tests/om.c
+++ b/dlls/ntdll/tests/om.c
@@ -419,9 +419,12 @@ static void test_directory(void)
         memset( buffer, 0xaa, sizeof(buffer) );
         status = pNtQuerySymbolicLinkObject( dir, &str, &len );
         ok( status == STATUS_SUCCESS, "NtQuerySymbolicLinkObject failed %08x\n", status );
+        if (status != STATUS_SUCCESS)
+            goto error;
         full_len = str.Length + sizeof(WCHAR);
         ok( len == full_len, "bad length %u/%u\n", len, full_len );
-        ok( buffer[len / sizeof(WCHAR) - 1] == 0, "no terminating null\n" );
+        if (len == full_len)
+            ok( buffer[len / sizeof(WCHAR) - 1] == 0, "no terminating null\n" );
 
         str.MaximumLength = str.Length;
         len = 0xdeadbeef;
@@ -441,6 +444,7 @@ static void test_directory(void)
         ok( status == STATUS_SUCCESS, "NtQuerySymbolicLinkObject failed %08x\n", status );
         ok( len == full_len, "bad length %u/%u\n", len, full_len );
 
+error:
         pNtClose(dir);
     }
 
-- 
1.7.1



More information about the wine-patches mailing list