Comme bon exemple de race condition standard, imagine un programme qui ne s'execute pas avec tes droits qui ouvre un fichier qui t'appartient, dont tu passes le chemin vers ce fichier en parametre, et te permet de l'editer.
Un programme avec une race condition ferait ceci:
- Il verifie que le fichier t'appartient
- Il ouvre le fichier et te laisse l'editer
Le probleme c'est que entre le moment ou le processus verifie que le fichier t'appartient et le moment ou il l'ouvre, tu pourrais remplacer le fichier que t'as passé en parametre et dont il a deja verifie les droits par un lien symbolique pointant sur /etc/passwd (par exemple

).
Et un programme sans race condition ferait ceci:
- Il ouvre le fichier et recupere ainsi un descripteur de fichiers.
- Il verifie les droits associés a ce descripteur de fichier (proprietaire, droits, ...)
Le fait que pour le 1er cas, il faut exploiter la faille dans un laps tres court entre la verification et l'ouverture, la range dans la serie des race condition
Voilà