Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | [util] fix fstat for archive directories on windows | kikht | 2022-02-17 | 1 | -13/+44 |
| | | | | | | | | | | | | | | | | | | | Currently TFileStat has a bunch of problems on Windows: 1. Mode computation ORs different types, but file attributes it checks are not mutually exclusive. E.g. it is possible for directory to have both `FILE_ATTRIBUTE_DIRECTORY` and `FILE_ATTRIBUTE_ARCHIVE`, but it will currently lead to invalid `_S_IFDIR | _S_IFREG` mode. 2. Any file with `FILE_ATTRIBUTE_REPARSE_POINT` flag is considered to be symlink. But there are many other types of reparse points even user-defined ones. For more info see https://docs.microsoft.com/en-us/windows/win32/fileio/reparse-point-tags To fix all this we do the following: 1. Add `ReparseTag` field to `TSystemFStat` and fill it for reparse points in `GetStatByHandle`. 2. Refactor `GetWinFileType` out of `GetFileMode` to ensure that we always select only single `S_IFMT` value. 3. Pass reparse tag value into `GetWinFileType` and select `S_IFLNK` only for `IO_REPARSE_TAG_SYMLINK` and `IO_REPARSE_TAG_MOUNT_POINT` tags. The latter one is a bit strange, but this behaviour is aligned with current implementation of `WinReadLink`. 4. Factor `ReadReparsePoint` out of `WinReadLink`. This function uses `DeviceIoControl` to read reparse point data into structures copied from WDK. 5. Add `WinReadReparseTag` that uses `ReadReparsePoint` to extract reparse point tag. We use this approach instead of MSDN-recommended `FindFirstFile` because latter requires file path, but we have file handle at this point. AFAIK golang and python use similar approach for this. 6. Add test for archived directory case. 7. Make symlink nofollow tests run only when symlink creation is possible for current user. Discovered in https://st.yandex-team.ru/ARC-3931 ref:4f6735817b9f85f3351a1021a56dd7eb4606bd65 | ||||
* | Restoring authorship annotation for <[email protected]>. Commit 2 of 2. | muzykantov | 2022-02-10 | 1 | -2/+2 |
| | |||||
* | Restoring authorship annotation for <[email protected]>. Commit 1 of 2. | muzykantov | 2022-02-10 | 1 | -2/+2 |
| | |||||
* | Restoring authorship annotation for <[email protected]>. Commit 2 of 2. | easergeev | 2022-02-10 | 1 | -2/+2 |
| | |||||
* | Restoring authorship annotation for <[email protected]>. Commit 1 of 2. | easergeev | 2022-02-10 | 1 | -2/+2 |
| | |||||
* | Restoring authorship annotation for Vasily Gerasimov ↵ | Vasily Gerasimov | 2022-02-10 | 1 | -1/+1 |
| | | | | <[email protected]>. Commit 2 of 2. | ||||
* | Restoring authorship annotation for Vasily Gerasimov ↵ | Vasily Gerasimov | 2022-02-10 | 1 | -1/+1 |
| | | | | <[email protected]>. Commit 1 of 2. | ||||
* | Restoring authorship annotation for <[email protected]>. Commit 2 of 2. | spacelord | 2022-02-10 | 1 | -2/+2 |
| | |||||
* | Restoring authorship annotation for <[email protected]>. Commit 1 of 2. | spacelord | 2022-02-10 | 1 | -2/+2 |
| | |||||
* | Restoring authorship annotation for <[email protected]>. Commit 2 of 2. | tobo | 2022-02-10 | 1 | -2/+2 |
| | |||||
* | Restoring authorship annotation for <[email protected]>. Commit 1 of 2. | tobo | 2022-02-10 | 1 | -2/+2 |
| | |||||
* | Restoring authorship annotation for <[email protected]>. Commit 2 of 2. | xpahos | 2022-02-10 | 1 | -2/+2 |
| | |||||
* | Restoring authorship annotation for <[email protected]>. Commit 1 of 2. | xpahos | 2022-02-10 | 1 | -2/+2 |
| | |||||
* | Restoring authorship annotation for <[email protected]>. Commit 2 of 2. | yazevnul | 2022-02-10 | 1 | -6/+6 |
| | |||||
* | Restoring authorship annotation for <[email protected]>. Commit 1 of 2. | yazevnul | 2022-02-10 | 1 | -6/+6 |
| | |||||
* | Restoring authorship annotation for Ruslan Kovalev ↵ | Ruslan Kovalev | 2022-02-10 | 1 | -72/+72 |
| | | | | <[email protected]>. Commit 2 of 2. | ||||
* | Restoring authorship annotation for Ruslan Kovalev ↵ | Ruslan Kovalev | 2022-02-10 | 1 | -72/+72 |
| | | | | <[email protected]>. Commit 1 of 2. | ||||
* | Restoring authorship annotation for <[email protected]>. Commit 2 of 2. | leo | 2022-02-10 | 1 | -29/+29 |
| | |||||
* | Restoring authorship annotation for <[email protected]>. Commit 1 of 2. | leo | 2022-02-10 | 1 | -29/+29 |
| | |||||
* | Restoring authorship annotation for <[email protected]>. Commit 2 of 2. | snowball | 2022-02-10 | 1 | -5/+5 |
| | |||||
* | Restoring authorship annotation for <[email protected]>. Commit 1 of 2. | snowball | 2022-02-10 | 1 | -5/+5 |
| | |||||
* | Restoring authorship annotation for Vlad Yaroslavlev <[email protected]>. ↵ | Vlad Yaroslavlev | 2022-02-10 | 1 | -2/+2 |
| | | | | Commit 2 of 2. | ||||
* | Restoring authorship annotation for Vlad Yaroslavlev <[email protected]>. ↵ | Vlad Yaroslavlev | 2022-02-10 | 1 | -2/+2 |
| | | | | Commit 1 of 2. | ||||
* | Restoring authorship annotation for <[email protected]>. Commit 2 of 2. | danlark | 2022-02-10 | 1 | -3/+3 |
| | |||||
* | Restoring authorship annotation for <[email protected]>. Commit 1 of 2. | danlark | 2022-02-10 | 1 | -3/+3 |
| | |||||
* | Restoring authorship annotation for <[email protected]>. Commit 2 of 2. | myltsev | 2022-02-10 | 1 | -11/+11 |
| | |||||
* | Restoring authorship annotation for <[email protected]>. Commit 1 of 2. | myltsev | 2022-02-10 | 1 | -11/+11 |
| | |||||
* | Restoring authorship annotation for <[email protected]>. Commit 2 of 2. | mvel | 2022-02-10 | 1 | -14/+14 |
| | |||||
* | Restoring authorship annotation for <[email protected]>. Commit 1 of 2. | mvel | 2022-02-10 | 1 | -14/+14 |
| | |||||
* | Restoring authorship annotation for Alexander Fokin <[email protected]>. ↵ | Alexander Fokin | 2022-02-10 | 1 | -27/+27 |
| | | | | Commit 2 of 2. | ||||
* | Restoring authorship annotation for Alexander Fokin <[email protected]>. ↵ | Alexander Fokin | 2022-02-10 | 1 | -27/+27 |
| | | | | Commit 1 of 2. | ||||
* | Restoring authorship annotation for Anton Samokhvalov <[email protected]>. ↵ | Anton Samokhvalov | 2022-02-10 | 1 | -32/+32 |
| | | | | Commit 2 of 2. | ||||
* | Restoring authorship annotation for Anton Samokhvalov <[email protected]>. ↵ | Anton Samokhvalov | 2022-02-10 | 1 | -32/+32 |
| | | | | Commit 1 of 2. | ||||
* | Restoring authorship annotation for <[email protected]>. Commit 2 of 2. | kikht | 2022-02-10 | 1 | -3/+3 |
| | |||||
* | Restoring authorship annotation for <[email protected]>. Commit 1 of 2. | kikht | 2022-02-10 | 1 | -3/+3 |
| | |||||
* | intermediate changes | Devtools Arcadia | 2022-02-07 | 1 | -0/+215 |
ref:cde9a383711a11544ce7e107a78147fb96cc4029 |