Eine Race-Condition ist ein unnormales Verhalten, das von einer unerwarteten Abhängigkeit beim Timing von Ereignissen verursacht wird. Mit anderen Worten heißt das, ein Programmierer nimmt irrtümlicher Weise an, dass ein bestimmtes Ereignis immer vor einem anderen stattfindet.
Einige der häufigsten Ursachen für Race-Conditions sind Signale, Zugriffsprüfungen und
das Öffnen von Dateien. Signale sind von Natur aus asynchrone Ereignisse, deshalb ist
besondere Vorsicht im Umgang damit geboten. Das Prüfen des Zugriffs mittels der Aufrufe
access(2)
gefolgt von open(2)
ist offensichtlich nicht atomar. Benutzer können zwischen den beiden Aufrufen Dateien
verschieben. Stattdessen sollten privilegierte Anwendungen seteuid()
direkt gefolgt von open()
aufrufen. Auf die gleiche Art sollte eine Anwendung immer eine korrekte Umask vor dem
Aufruf von open()
setzen, um störende Aufrufe von chmod()
zu umgehen.
Zurück | Zum Anfang | Weiter |
Vertrauen | Nach oben | Lokalisierung und Internationalisierung - L10N und I18N |
Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an
<[email protected]>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an <[email protected]>.