CWE ID: 765
Name: Multiple Unlocks of a Critical Resource
Das Produkt gibt eine kritische Ressource mehrfach als vorgesehen frei, was zu einem unerwarteten Systemzustand führt.
Bei Betrieb in einer parallelen Umgebung und wiederholtem Freigeben einer kritischen Ressource variieren die Konsequenzen je nach Art des Locks, seiner Implementierung und der geschützten Ressource. In bestimmten Situationen, beispielsweise bei der Verwendung von Semaphores, werden die Ressourcen gepoolt, und zusätzliche Aufrufe zum Freigeben erhöhen die Anzahl der verfügbaren Ressourcen. Dies kann wahrscheinlich zu einem Systemabsturz oder unvorhersehbarem Verhalten führen, wenn das System seine Kapazitätsgrenze erreicht.
Effektivität: Unknown
Beschreibung: Beim Sperren und Freigeben einer Ressource sollte sichergestellt werden, dass alle Kontrollpfade durch den Code, in dem die Ressource einmal oder mehrmals gesperrt wird, genau der gleichen Anzahl von Freigaben entsprechen. Sollte das Produkt einen Lock erwerben und dann feststellen, dass es sein beabsichtigtes Verhalten nicht ausführen kann, ist es unerlässlich, die Lock(s) freizugeben, bevor auf eine Verbesserung der Bedingungen gewartet wird. Die Lock(s) sollten vor einem erneuten Versuch wieder erworben werden.