|
Une condition de course est un comportement anormal causé par une dépendance inattendue sur le séquencement relatif des évènements. En d'autres mots, un programmeur a supposé à tort qu'un évènement particulier se passerait avant un autre.
Quelques causes habituelles de conditions de course sont les signaux, les
vérifications d'accès et les fichiers ouverts. Les signaux sont des
évènements asynchrones par nature aussi un soin particulier doit être
pris pour les utiliser. Vérifier les accès avec access(2)
puis open(2)
n'est
clairement pas atomique. Les utilisateurs peuvent déplacer des fichiers entre les
deux appels. Les applications privilégiées devraient plutôt faire un
appel à seteuid()
puis appeler open()
directement. Dans le même esprit, une application
devrait toujours règler un umask correct avant un appel à open()
pour prévenir le besoin d'appels non valides
à chmod()
.
Précédent | Sommaire | Suivant |
La confiance | Niveau supérieur | Le noyau |
Ce document, ainsi que d'autres peut être téléchargé sur ftp.FreeBSD.org/pub/FreeBSD/doc/.
Pour toutes questions à propos de FreeBSD, lisez la documentation avant de contacter <questions@FreeBSD.org>.
Pour les questions sur cette documentation, contactez <doc@FreeBSD.org>.
Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:12