mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-11 21:46:00 +02:00
* handle unknown reparse tags as non-symlinks
git-svn-id: trunk@46761 -
This commit is contained in:
parent
f56539a7c9
commit
200e20fd71
@ -476,16 +476,19 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Handle := FindFirstFileExW(PUnicodeChar(SymLinkRec.TargetName), FindExInfoDefaults , @SymLinkRec.FindData,
|
if SymLinkRec.TargetName <> '' then begin
|
||||||
FindExSearchNameMatch, Nil, 0);
|
Handle := FindFirstFileExW(PUnicodeChar(SymLinkRec.TargetName), FindExInfoDefaults , @SymLinkRec.FindData,
|
||||||
if Handle <> INVALID_HANDLE_VALUE then begin
|
FindExSearchNameMatch, Nil, 0);
|
||||||
Windows.FindClose(Handle);
|
if Handle <> INVALID_HANDLE_VALUE then begin
|
||||||
SymLinkRec.Attr := SymLinkRec.FindData.dwFileAttributes;
|
Windows.FindClose(Handle);
|
||||||
SymLinkRec.Size := QWord(SymLinkRec.FindData.nFileSizeHigh) shl 32 + QWord(SymLinkRec.FindData.nFileSizeLow);
|
SymLinkRec.Attr := SymLinkRec.FindData.dwFileAttributes;
|
||||||
end else if RaiseErrorOnMissing then
|
SymLinkRec.Size := QWord(SymLinkRec.FindData.nFileSizeHigh) shl 32 + QWord(SymLinkRec.FindData.nFileSizeLow);
|
||||||
raise EDirectoryNotFoundException.Create(SysErrorMessage(GetLastOSError))
|
end else if RaiseErrorOnMissing then
|
||||||
else
|
raise EDirectoryNotFoundException.Create(SysErrorMessage(GetLastOSError))
|
||||||
SymLinkRec.TargetName := '';
|
else
|
||||||
|
SymLinkRec.TargetName := '';
|
||||||
|
end else
|
||||||
|
SetLastError(ERROR_REPARSE_TAG_INVALID);
|
||||||
end else
|
end else
|
||||||
SetLastError(ERROR_REPARSE_TAG_INVALID);
|
SetLastError(ERROR_REPARSE_TAG_INVALID);
|
||||||
finally
|
finally
|
||||||
|
Loading…
Reference in New Issue
Block a user