bytecodealliance / bytecodealliance/cap-std

Use O_NOFOLLOW_ANY on macOS

Ouverte
#179 0 commentaires 1 réaction 0 personnes assignées Voir sur GitHub
enhancement
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

Recevez les nouvelles issues par e-mail

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