* Sync up to trunk head (r64921).
[reactos.git] / ntoskrnl / io / iomgr / error.c
index 07197ff..91c1621 100644 (file)
@@ -310,11 +310,9 @@ IopLogWorker(IN PVOID Parameter)
             /* We do, query its name */
             Status = ObQueryNameString(LogEntry->DeviceObject,
                                        ObjectNameInfo,
-                                       sizeof(OBJECT_NAME_INFORMATION) +
-                                       100 -
-                                       DriverNameLength,
+                                       sizeof(Buffer),
                                        &ReturnedLength);
-            if ((!NT_SUCCESS(Status)) || !(ObjectNameInfo->Name.Length))
+            if (!NT_SUCCESS(Status) || (ObjectNameInfo->Name.Length == 0))
             {
                 /* Setup an empty name */
                 ObjectNameInfo->Name.Length = 0;
@@ -367,7 +365,12 @@ IopLogWorker(IN PVOID Parameter)
         DeviceNameLength += sizeof(WCHAR);
 
         /* Free the buffer if we had one */
-        if (PoolObjectNameInfo) ExFreePool(PoolObjectNameInfo);
+        if (PoolObjectNameInfo)
+        {
+            ExFreePool(PoolObjectNameInfo);
+            PoolObjectNameInfo = NULL;
+            ObjectNameInfo = (POBJECT_NAME_INFORMATION)&Buffer;
+        }
 
         /* Go to the next string buffer position */
         ErrorMessage->EntryData.NumberOfStrings++;
@@ -428,7 +431,7 @@ IopLogWorker(IN PVOID Parameter)
             break;
         }
 
-        /* Derefernece the device object */
+        /* Dereference the device object */
         if (LogEntry->DeviceObject) ObDereferenceObject(LogEntry->DeviceObject);
         if (DriverObject) ObDereferenceObject(LogEntry->DriverObject);