[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH] xen/x86: irq: Avoid a TOCTOU race in pirq_spin_lock_irq_desc()
From: Julien Grall <jgrall@xxxxxxxxxx> Even if we assigned pirq->arch.irq to a variable, a compile is still allowed to read pirq->arch.irq multiple time. This means that the value checked may be different from the value used to get the desc. Force the compiler to only do one read access by using read_atomic(). Signed-off-by: Julien Grall <jgrall@xxxxxxxxxx> --- xen/arch/x86/irq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c index a69937c840b9..25f2eb611692 100644 --- a/xen/arch/x86/irq.c +++ b/xen/arch/x86/irq.c @@ -1187,7 +1187,7 @@ struct irq_desc *pirq_spin_lock_irq_desc( for ( ; ; ) { - int irq = pirq->arch.irq; + int irq = read_atomic(&pirq->arch.irq); if ( irq <= 0 ) return NULL; -- 2.17.1
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |