mirror of
https://github.com/torvalds/linux.git
synced 2024-11-15 16:41:58 +00:00
x86: uv: xpc NULL deref when mesq becomes empty
Under heavy load conditions, our set of xpc messages may become exhausted. The code handles this correctly with the exception of the management code which hits a NULL pointer dereference. Signed-off-by: Robin Holt <holt@sgi.com> Cc: Jack Steiner <steiner@sgi.com> Cc: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
c2c9f11574
commit
15b87d67ff
@ -949,11 +949,13 @@ xpc_get_fifo_entry_uv(struct xpc_fifo_head_uv *head)
|
||||
head->first = first->next;
|
||||
if (head->first == NULL)
|
||||
head->last = NULL;
|
||||
|
||||
head->n_entries--;
|
||||
BUG_ON(head->n_entries < 0);
|
||||
|
||||
first->next = NULL;
|
||||
}
|
||||
head->n_entries--;
|
||||
BUG_ON(head->n_entries < 0);
|
||||
spin_unlock_irqrestore(&head->lock, irq_flags);
|
||||
first->next = NULL;
|
||||
return first;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user