advapi32/tests: Fix the ReadEventLog error checking.
diff --git a/dlls/advapi32/tests/eventlog.c b/dlls/advapi32/tests/eventlog.c
index 3907873..ff3f658 100644
--- a/dlls/advapi32/tests/eventlog.c
+++ b/dlls/advapi32/tests/eventlog.c
@@ -767,22 +767,28 @@
     {
         win_skip("Win7 fails when using incorrect event types\n");
         ret = ReportEvent(handle, 0, 0, 0, NULL, 0, 0, NULL, NULL);
+        ok(ret, "Expected success : %d\n", GetLastError());
     }
     else
     {
         void *buf;
-        DWORD read, needed;
+        DWORD read, needed = 0;
         EVENTLOGRECORD *record;
 
+        ok(ret, "Expected success : %d\n", GetLastError());
+
         /* Needed to catch earlier Vista (with no ServicePack for example) */
         buf = HeapAlloc(GetProcessHeap(), 0, sizeof(EVENTLOGRECORD));
-        if (ReadEventLogA(handle, EVENTLOG_SEQUENTIAL_READ | EVENTLOG_FORWARDS_READ,
-                          0, buf, sizeof(EVENTLOGRECORD), &read, &needed))
+        if (!(ret = ReadEventLogA(handle, EVENTLOG_SEQUENTIAL_READ | EVENTLOG_FORWARDS_READ,
+                                  0, buf, sizeof(EVENTLOGRECORD), &read, &needed)) &&
+            GetLastError() == ERROR_INSUFFICIENT_BUFFER)
         {
             buf = HeapReAlloc(GetProcessHeap(), 0, buf, needed);
-            ReadEventLogA(handle, EVENTLOG_SEQUENTIAL_READ | EVENTLOG_FORWARDS_READ,
-                          0, buf, needed, &read, &needed);
-
+            ret = ReadEventLogA(handle, EVENTLOG_SEQUENTIAL_READ | EVENTLOG_FORWARDS_READ,
+                                0, buf, needed, &read, &needed);
+        }
+        if (ret)
+        {
             record = (EVENTLOGRECORD *)buf;
 
             /* Vista and W2K8 return EVENTLOG_SUCCESS, Windows versions before return
@@ -793,7 +799,6 @@
         }
         HeapFree(GetProcessHeap(), 0, buf);
     }
-    ok(ret, "Expected success : %d\n", GetLastError());
 
     /* This will clear the eventlog. The record numbering for new
      * events however differs on Vista SP1+. Before Vista the first