* Sync up to trunk head (r64959).
[reactos.git] / ntoskrnl / ob / oblink.c
index af95e48..ce4c8c6 100644 (file)
@@ -285,7 +285,7 @@ ObpCreateSymbolicLinkName(IN POBJECT_SYMBOLIC_LINK SymbolicLink)
                 DriveType = DOSDEVICE_DRIVE_REMOTE;
                 break;
             default:
-                DPRINT1("Device Type %ld for %wZ is not known or unhandled\n",
+                DPRINT1("Device Type %lu for %wZ is not known or unhandled\n",
                         ((PDEVICE_OBJECT)Object)->DeviceType,
                         &SymbolicLink->LinkTarget);
                 DriveType = DOSDEVICE_DRIVE_UNKNOWN;
@@ -595,7 +595,12 @@ NtCreateSymbolicLinkObject(OUT PHANDLE LinkHandle,
             ExAllocatePoolWithTag(PagedPool,
                                   CapturedLinkTarget.MaximumLength,
                                   TAG_SYMLINK_TARGET);
-        if (!SymbolicLink->LinkTarget.Buffer) return STATUS_NO_MEMORY;
+        if (!SymbolicLink->LinkTarget.Buffer)
+        {
+            /* Dereference the symbolic link object and fail */
+            ObDereferenceObject(SymbolicLink);
+            return STATUS_NO_MEMORY;
+        }
 
         /* Copy it */
         RtlCopyMemory(SymbolicLink->LinkTarget.Buffer,