bytecodealliance / bytecodealliance/cap-std

Document why DirExt::access on Windows doesn't use their faccess equivalent

Ouverte Adaptée aux débutants
#416 2 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
Rust
Étoiles
821
Forks
57
Merge moyen
1 h 16 min
PR mergées (30 j)
4

Description

I noticed that your Windows implementation of `DirExt::access` just tries opening the file.

I understand if [_access, _waccess, t_access](https://learn.microsoft.com/en-us/cpp/c-runtime-library/reference/access-waccess?view=msvc-170) or [_access_s, _waccess_s, _taccess_s](https://learn.microsoft.com/en-us/cpp/c-runtime-library/reference/access-s-waccess-s?view=msvc-170) from the Microsoft C Runtime impose additional dependencies you want to avoid, and that the Win32 API-native version's [overcomplicated credentials](https://blog.aaronballman.com/2011/08/how-to-check-access-rights/) blow up to six pages in the [faccess](https://github.com/Freaky/faccess/) crate's Windows implementation ([Link to the source file](https://github.com/Freaky/faccess/blob/master/src/lib.rs), MIT-licensed) once you address various edge cases.

However, I was unable to find any clear documentation for the rationale behind that. (Which I'm guessing is "auditing burden".)

Could that be improved, please?

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par localiser l’implémentation Windows de DirExt::access et lisez comment elle vérifie actuellement l’accès en ouvrant le fichier. Comparez cette approche avec les Microsoft CRT APIs indiquées par le lien et l’implémentation Windows de faccess, puis documentez la justification du projet, notamment toute préoccupation confirmée concernant les dépendances ou l’audit. Le travail est terminé lorsque la justification est claire pour les lecteurs, sans modifier l’implémentation.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
rust
Domaine
documentation, security
Type d'issue
Documentation
Difficulté
2/5
Temps estimé
1-3 heures
Activité
Calme
Clarté
Plutôt claire
Accessibilité débutants
68/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.