}
/* Copy it */
- RtlCopyMemory(SymbolicLink->LinkTarget.Buffer,
- CapturedLinkTarget.Buffer,
- CapturedLinkTarget.MaximumLength);
+ _SEH2_TRY
+ {
+ RtlCopyMemory(SymbolicLink->LinkTarget.Buffer,
+ CapturedLinkTarget.Buffer,
+ CapturedLinkTarget.MaximumLength);
+ }
+ _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
+ {
+ ObDereferenceObject(SymbolicLink);
+ _SEH2_YIELD(return _SEH2_GetExceptionCode());
+ }
+ _SEH2_END;
/* Initialize the remaining name, dos drive index and target object */
SymbolicLink->LinkTargetObject = NULL;