summaryrefslogtreecommitdiff
path: root/crates/fs-mistrust/src/dir.rs
Commit message (Collapse)AuthorAgeFilesLines
* maint: Run maint/add_warning to deny string slicesClara Engler2026-06-091-0/+1
| | | | | | | | | | | | This commit executes maint/add_warning with the just added change to deny string slices except in tests. I recommend auditing this by checking out the previous commit followed by running the script yourself and then verifying that the diff is identical to this commit. This commit makes cargo clippy fail. We will add exceptions in the next commit.
* make fs-mistrust tests libc-genericAndrew Kloet2026-05-141-2/+2
| | | | | | | | | | | | | | | The access_symlink() test fails when using musl libc, which for ELOOP uses the string: [1] > "Symbolic link loop" libc errors should be matched against the standardized error names rather than the libc error messages. This behaviour has been recognized by the maintiner of the Alpine Linux Arti port who had to delete this test to have it build against musl.[2] [1] https://git.musl-libc.org/cgit/musl/tree/src/errno/__strerror.h#n52 [2] https://gitlab.alpinelinux.org/alpine/aports/-/blob/3.23-stable/community/arti/disable-access_symlink-test.patch
* Fix name of clippy lint to unchecked_time_subtraction (2)Ian Jackson2025-11-061-1/+1
| | | | Run maint/add_warning
* Switch Cargo.toml files to edition 2024.Nick Mathewson2025-08-071-2/+2
| | | | | | | | | | | | | | First, run ``` git grep -l "^edition =" | xargs perl -i -pe 's/^edition *=.*/edition = "2024"/;' ``` Second, manually verify that all Cargo.toml files have changed, and nothing else has changed. Third, run cargo fmt again.
* *: use std::io::Error::other in many placesNick Mathewson2025-05-151-4/+1
| | | | | | | The `IoError::other` function is an easier way to say `IoError::new(IoErrorKind::Other, ...)`. It's been around since 1.74, but clippy started warning about the more verbose version in 1.87.
* fs-mistrust: Move file access methods on CheckedDir to FileAccess.Nick Mathewson2025-01-141-68/+5
| | | | | These are the methods which we'd like to give new options in #1746; we can move other methods later if we want to.
* fs-mistrust: Define a (stub) FileAccess type.Nick Mathewson2025-01-141-0/+5
| | | | | We're going to move functionality and configuration functions here to implement #1746.
* fs-mistrust::CheckedDir: Refactor some common code.Nick Mathewson2025-01-141-22/+32
|
* fs-mistrust: Add test for (not) opening symlink from CheckedDir.Nick Mathewson2025-01-141-1/+10
|
* fs-mistrust: clarify doc for a private function.Nick Mathewson2025-01-141-0/+2
|
* fs-mistrust: Make CheckedDir::metadata() return an error if path is symlink.Gabriela Moldovan2024-08-121-2/+45
|
* fs-mistrust: Avoid opening the file in CheckedDir::metadata().Gabriela Moldovan2024-08-081-5/+19
| | | | Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2291#note_3057232
* fs-mistrust: Add a TODO about refactoring CheckedDir::metadata().Gabriela Moldovan2024-08-081-0/+1
|
* fs-mistrust: Note that metadata() can return Error::NotFound.Gabriela Moldovan2024-08-081-0/+2
|
* fs-mistrust: Apply deferred cargo fmt.Gabriela Moldovan2024-08-081-1/+4
|
* fs-mistrust: Add a CheckedDir::metadata function.Gabriela Moldovan2024-08-081-1/+28
|
* fs-mistrust: Use Path::try_exists() instead of Path::exists().Gabriela Moldovan2024-07-301-2/+2
|
* Run maint/add_warning.Nick Mathewson2024-03-131-0/+1
|
* Fix typos in doc commentsTobias Stoeckmann2024-03-061-1/+1
|
* fs_mistrust: Provide CheckedDir::make_secure_dirIan Jackson2024-01-291-0/+18
| | | | | | state_dir wants this, to descend into subdirectories. I think the implementation could be improved - see the TODO.
* fs_mistrust: Expose CheckedDir::verifierIan Jackson2024-01-251-2/+2
| | | | | | | | | I'm not sure why this isn't public. It seems like an obviously reasonable transformation. If I as author of !1927 had been an external contributor, I could have worked around the lack of .make_secure_directory() if .verifier() had existed. So I think exposing it would be useful.
* fs-mistrust: Add read_directory and remove_file to CheckedDir.Nick Mathewson2023-11-271-0/+142
| | | | Closes #1117.
* Run maint/add_warning to add lint block everywhereIan Jackson2023-08-231-0/+1
|
* Run maint/add_warning to actually apply new lint allowsIan Jackson2023-07-101-0/+1
|
* Allow clippy::unchecked_duration_subtraction in testsNick Mathewson2023-01-271-0/+1
| | | | | This panics on error, and we're fine with a panic on misbehavior in tests.
* test lint blocks: Add many many automaticallyIan Jackson2022-12-121-0/+8
| | | | | This is precisely the result of running the rune in maint/adhoc-add-lint-blocks.
* Editorial improvements on fs-mistrust errorsNick Mathewson2022-06-221-5/+7
| | | | | | These changes make sure that the errors conform to our preferred style, and include a description of what exactly we were doing when something went wrong.
* fs-mistrust: BadPermission(_, _) -> BadPermission(..)Alex Xu (Hello71)2022-05-311-4/+4
| | | | Next commit adds another parameter to Error::BadPermission.
* fs-mistrust: make Mistrust have a corresponding Builder type.Nick Mathewson2022-05-241-7/+13
| | | | | This is an approximately minimal revision to get Builder in place; subsequent commits will clean up the API.
* fs-mistrust: add various methods.Nick Mathewson2022-05-091-4/+128
| | | | | | | | | | | This includes: * a CachedDir::join method. * functions to read and write from provided filenames in a CachedDir. * a method to tell whether a fs-mistrust error is about bad file permissions, or failure to inspect file permissions or some other kind of IO problem.
* Derive Clone and Debug for CheckedDir.Nick Mathewson2022-05-051-0/+1
|
* fs-mistrust: write a lot about TOCTOU issues.Nick Mathewson2022-05-031-0/+13
|
* fs-mistrust: Rename SecureDir to CheckedDir.Nick Mathewson2022-05-031-8/+8
|
* Add a SecureDir API for checked access to directoriesNick Mathewson2022-05-031-0/+229
The only way to get a SecureDir is by having checked a directory. Once you have one, it encourages you to open and create files and directories with the right permissions, and checks them for you.