bytecodealliance / bytecodealliance/cap-std
Use O_NOFOLLOW_ANY on macOS
- Langage dominant
- Rust
- Étoiles
- 821
- Forks
- 57
- Merge moyen
- 1 h 16 min
- PR mergées (30 j)
- 4
Description
According to [this blog post](https://blog.malwarebytes.com/mac/2021/08/macos-11s-hidden-security-improvements/#O_NOFOLLOW_ANY), macos 11 has a new `O_NOFOLLOW_ANY` flag that causes `open` to fail if any path component is a symlink. Assuming symlinks are relatively rare, cap-std could use this as a fast path -- check that the path contains no explicit `..` and then open with `O_NOFOLLOW_ANY`; if that succeeds, then we're done. If either of those fails, open with the slow path.
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par suivre les points d’entrée de cap-std pour l’ouverture des chemins, ainsi que les chemins rapide et lent existants pour la gestion des symlinks. Vérifiez comment les composants `..` explicites sont détectés et comment les flags d’ouverture propres à chaque plateforme sont définis. Le travail est terminé lorsque macOS 11 peut utiliser `O_NOFOLLOW_ANY` lorsque c’est sûr, tandis que le chemin lent existant continue de gérer les cas de fallback.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- macos, rust
- Domaine
- operating-systems, security
- Type d'issue
- Fonctionnalité
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 45/100