[PATCH] cpukit/score: avoid NULL and races in priority mutex

Sebastian Huber sebastian.huber at embedded-brains.de
Fri Jan 3 06:07:57 UTC 2020


On 03/01/2020 00:24, Gedare Bloom wrote:
>     while ( !_Chain_Is_empty( &the_thread->Priority_node.Inherited_priorities ) ) {
> +    _ISR_Disable( level );
>       _Thread_Dequeue_priority_node(
>         ((Thread_Priority_node*)_Chain_First(
>           &the_thread->Priority_node.Inherited_priorities
>         ))
>       );
> +    _ISR_Enable( level );
>     }

I don't know how the stuff works in detail, but this looks like a TOCTOU 
problem. Should this be changed into:

_ISR_Disable( level );
while ( !_Chain_Is_empty( 
&the_thread->Priority_node.Inherited_priorities ) ) {
   _Thread_Dequeue_priority_node(
     (Thread_Priority_node *) _Chain_First(
       &the_thread->Priority_node.Inherited_priorities
     )
   );
   _ISR_Flash( level );
}
_ISR_Enable( level );

-- 
Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : sebastian.huber at embedded-brains.de
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.


More information about the devel mailing list