Status = STATUS_INVALID_PARAMETER;
DPRINT1("Invalid Size: %lx or Attributes: %lx\n",
ObjectAttributes->Length, ObjectAttributes->Attributes);
- goto Quickie;
+ _SEH_LEAVE;
}
/* Set some Create Info */
{
DPRINT1("Unable to capture the security descriptor!!!\n");
ObjectCreateInfo->SecurityDescriptor = NULL;
- goto Quickie;
+ _SEH_LEAVE;
}
DPRINT("Probe done\n");
{
Status = _SEH_GetExceptionCode();
DPRINT1("Failed\n");
- goto Quickie;
}
_SEH_END;
- /* Now check if the Object Attributes had an Object Name */
- if (LocalObjectName)
- {
- DPRINT("Name Buffer: %wZ\n", LocalObjectName);
- Status = ObpCaptureObjectName(ObjectName,
- LocalObjectName,
- AccessMode);
- }
- else
+ if (NT_SUCCESS(Status))
{
- /* Clear the string */
- RtlInitUnicodeString(ObjectName, NULL);
-
- /* He can't have specified a Root Directory */
- if (ObjectCreateInfo->RootDirectory)
+ /* Now check if the Object Attributes had an Object Name */
+ if (LocalObjectName)
+ {
+ DPRINT("Name Buffer: %wZ\n", LocalObjectName);
+ Status = ObpCaptureObjectName(ObjectName,
+ LocalObjectName,
+ AccessMode);
+ }
+ else
{
- DPRINT1("Invalid name\n");
- Status = STATUS_OBJECT_NAME_INVALID;
+ /* Clear the string */
+ RtlInitUnicodeString(ObjectName, NULL);
+
+ /* He can't have specified a Root Directory */
+ if (ObjectCreateInfo->RootDirectory)
+ {
+ DPRINT1("Invalid name\n");
+ Status = STATUS_OBJECT_NAME_INVALID;
+ }
}
}
-
-Quickie:
- if (!NT_SUCCESS(Status))
+ else
{
DPRINT1("Failed to capture, cleaning up\n");
ObpReleaseCapturedAttributes(ObjectCreateInfo);